Initial implementation of the modeshape teiid sql sequencer

* This sequencer parser is generated from the teiid client's version of
  teiid's javacc template.

* The nodes will be initially generated then committed to wrap modeshape
  AST nodes and the setters used to populate the children and properties
  of these AST nodes.
Adds the jcr-api library to the modeshape library plugin

* Constants actually used by the ddl sequencer and soon by the teiid sql
  sequencer
Changes to code ahead of working with language objects

* StringConstants
 * New constants

* IBinaryType
 * Have the DataTypeManagerService offer up the BinaryType as an interface
   rather than exposing the actual class, allowing the interface of the
   DataTypeManagerService to be used rather than again the implementation.

* ExecutionAdminFactory
 * The DataTypeManagerService must be made available somehow if we are to
   utilise its classes so at least export the admin factory to allow access
Getting the parser and language objects to compile

* First cut of the language objects provides little to no guts of
  each class but outlines the methods requires by both the parser
  and their interfaces.

* The important methods are the setters and it may be the case
  that the getters are simply made to throw unsupported operation
  exceptions
Ensure all objects in sql.lang, sql.proc, sql.symbol are ASTNodes

* Few of the classes are used as wrapper for individual properties

* Better if these classes are ASTNodes as well to ensure their
  properties can be located into modeshape by parser calls.
Generate a CND for the parser language objects in the Teiid SQL sequencer

* .project
 * Enable CND building and validation

* Teiid8Parser.jjt
 * Ensure setters only set a single field

* TeiidSQL.cnd
 * Generated cnd artefact of Teiid Language Objects

* scripts/*
 * Framework classes for cnd generation

* Refactor language objects classes to allow for successful cnd generation
 * Removes needless interface implementations
 * Ensure List parameters are properly genericised
 * Move LanguageObject interface implementation down to ASTNode
 * Implement missing setters
Adds a Lexicon interface for Teiid SQL

* Renames the cnd file

* TeiidCndGenerator tweaked to generate the TeiidSqlLexicon interface in
  addition to the cnd

* Fixes error in CTree where interfaces getting lost more than 2 branches
  down
Minor fixes

* TeiidNodeFactory
 * No need to create lexical constants when they have all
   been added to StringConstants

* AbstractTeiidParser
 * Minor warning about extra semi-colon
Adds index of interface classes to Teiid SQL Lexicon

* Extends generator to create getTypeId method for
  extracting the ID field of each object interface
Sort out interim clone methods

* 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
Refinements to CND and Lexicon Generator

* Generator analyzes interface getter methods as well as class setter
  methods and defines properties/children accordingly, eg. Expression
  now has a typeClass property!

* Properties/Children only added if they are not already defined on
  their parent class/interfaces
Implements the getter / setter methods of sequencer language objects

* All language objects no longer have any fields of their own but
  'store' their children and properties in the ASTNode ready to be
  written to the Modeshape repository.

* IDataTypeManagerService DataTypeNames expanded to cover the ARRAY
  versions of the types and the DataTypeManagerService implementation
  enums updated to support them.

* Test ported over from runtime client test plugin to check that the
  parser and language objects are doing the right thing.
Fixes addition of multiple objects to singular references

* For the addition of children to references, the ASTNode addLastChild
  method has been used, which will simply add the child. This is
  inadequate if the child setter method is called more than once.

* Adds setChild method to ASTNode which removes existing child references
  before adding the new one
Adds dependencies to modeshape library plugin

* Modeshape libs requires significant number of dependencies. Rather
  than trying to list them all, replaces maven copy goal with
  copy-dependencies. This copies all transitive dependencies to the
  lib directory accordingly.

* Ensures that the correct versions are taken in according to the
  Modeshape BOM rather than trying to specify them separately
Creates Teiid Sql Sequencer

* Converts the ASTNodes created by the parser into modeshape
  sequenced nodes, adding them to a given repository.

* Provides unit tests for modeshape sequencer, fires up the modeshape
  engine, creates a session and sequences given sql strings.

* DynamicCommand
 * Fixes typo.

* Sequencer uses a teiid version property appended to the output node
  to determine the parser version.
Modifies SPParameter interface method

* The name setParameter makes zero-sense given it is used for adding
  multiple parameters to the same stored procedure.

* Renames setParameter to addParameter
Implementation of Teiid SQL Node Visitor

* TeiidSqlNodeVisitor
 * Provides for turning tree of modeshape tsql nodes back
   into their SQL string representation

* Implements the unit tests for testing the transition from
  modeshape nodes into SQL using the visitor

* Fixes for sequencer, ASTNode and requisite classes in
  light to ensure successful unit tests
Merge pull request #25 from phantomjinx/teiid-sequencer

Implementation of modeshape Teiid SQL Sequencer and Desequencer