Calculates the hash for the object, based on the method of equality used in the equate
method. This is used for classes that delegate their equals(Object) method to an
Equator (and so must also delegate their hashCode() method), or for implementations
of HashedMap that use an Equator for the key objects.