Adds index of interface classes to Teiid SQL Lexicon

* Extends generator to create getTypeId method for
  extracting the ID field of each object interface
Refactor the parent / child methods in parser classes

* Rather than both SimpleNode and ASTNode having
  independant parent/child fields, makes SimpleNode
  abstract and implements jjt-prefixed methods in ASTNode

* Commented out clone method in ASTNode at the moment. May
  be useful later or may be removed entirely

* Clone methods added to *Hints to satisfy compiler
Refactors getters in language objects

* Amends the getter methods in language objects to throw
  unsupported operation exception rather than just
  returning null
Track Teiid Versions of properties in the Teiid SQL Lexicon

* Adds the Since and Removed Versions for properties, such as
  GroupSymbol.isRollUp. Not sure whether this information can ever be
  added to the CND
WIP