Made the record type refer to its record declaration (missing file on previous commit)
Updated template for record type so that it read the record name through its declaration
Fixed cloning of Java generated records and improved it for some cases
Added test exercising field number expression generation e.g. mk_(1, true).#1 in VDM
Fixed test result for field number expressions
Cleaned up template for sequence enumeration
Minor changes to Tuple implementation interface
Added generation of field number expressions, e.g. mk_(1,true).#1,  and improved cloning of generated records/tuples
Made type of field explicit in field number expression Java generation as Java cannot interfere the type in code like

private static final Tuple a = Tuple.mk_(Tuple.mk_(1L, true), 3L);
private static final Tuple c = a.get(0).clone();

Instead the template now generates

private static final Tuple a = Tuple.mk_(Tuple.mk_(1L, true), 3L);
private static final Tuple c = a.<Tuple>get(0).clone();
Updated test results for field number expression generation and added a specification test exercising generation of tuple usage
Added test for 'isofclass' expression generation
Added generation of 'isofclass' expression
Added generation of equal method for records that compares records based on structural equivalence
Changes:

1) Changed generation of not operator so that it correctly wraps the negated expression if needed, e.g. !(true && false)
2) Added more complex naming scheme for records and new expressions to allow instantiation of records across Java classes, e.g. new A.Rec()
3) Removed cloning of records being compared using '=' and '<>' as the generated Java records (classes, really) are not modified
4) Added initial work on record comparison
Changed error reporting for MergeVisitor
Made TemplateCallable data structure capable of handling any Java object
Moved typename (holding information about the defining module of a type and the name of the type itself, e.g. MyClass.MyRec) from ARecordDeclCG to the ARecordTypeCG and reintroduced a 'String' name for ARecordDeclCG
Changed the construction of template callables so they can carry state. In particular this allows JavaFormat to access the OO AST structure for further analysis.
The commit covers the following:
1) Made all methods of JavaFormat instance members (non-static) to allow them to access OO AST information stored in an instance variable.
2) Correctly set the parent of record methods to be the record. (constructor/equals/clone, i.e. those methods constructed using the abstract syntax of the OO AST).
3) Cleaned up the code of for class.
Added test exercising use of a records in classes different from where they are declared