Fix missed RSource->Source renames.
equals/hashCode on Modifiers.
Add merge, partition and groupBy methods to Relation.

Also add equals/hashCode to Relation.

Also add a basic test for groupBy.
remove dead code in TestFramework
Add equals/hashCode to generated API datatype classes.

Equality is reference equality for classes that have lazy members
(currently Structure and ClassLike) and member equality for everything else.
This avoids the circularity issue due to lazy members.

Forces each class to be either abstract or final, to ensure that
the equals implementation is always correct.

Fixes toString to avoid infinite recursion.
Merge remote-tracking branch 'benjy/compilations' into 0.13
Merge remote-tracking branch 'benjy/modifiers' into 0.13
Merge remote-tracking branch 'benjy/datatype_codegen' into 0.13
Merge branch '0.13' into fix_split_merge
Merge remote-tracking branch 'benjy/relation' into 0.13
Merge branch '0.13' into fix_split_merge