FORGE-1005 Modified equals/hashcode generators to consider inheritance hierarchies.

The generator now includes a delegation to super.hashCode() and super.equals() when a super class not of type Object is detected for the provided class.

Additionally, bugs in the earlier equals generator were fixed. The equals method no longer returns immediately when the first field is equal. Additionally, instanceof is used to verify that the Class instances are equal to account for subclasses, thereby ensuring that proxied instances are also equal.

Changes were also done to incorporate new methods in the Field API. Methods are now available to detect if a field is transient or volatile, or is an Array. Transient and array field detection is required for generating the equals and hashCode methods.