public static boolean hasEquivalentFields(Object obj1,
Given two object instances of the same type, this method accesses all their internal fields,
including the fields of StateContainer if the class type is Component, to check if they are
equivalent. There's special equality code to handle special class types e.g. Components,
true if the two instances are equivalent. False otherwise.