Modify, fix and commit the ast nodes

* AST nodes created based on version 8.4 teiid code. Still need to be
  sure they are backward compatible with version 7.7

* AggregateSymbol
* WindowFunction
 * Examples of AST nodes which have changed their class hierarchy. To
   workaround this, the javacc template utilises a factory for constructing
   the nodes. The factory can key on the parser version and return the
   correct implementation of aggregate symbol.
 * Thus, an AggregateSymbol interface is used throughout and two different
   implementations (v7 and v8) created.

* TeiidParser
 * Interface covering all version implementations of parsers
 * AST nodes reference this interface to make them compatible across parser
   versions

* PropertiesUtil
* StringUtil
 * Utility methods brought directly from teiid code
Utilities for dealing with Since and Removed annotations

* AnnotationUtils
 * Provides functions for handling fields/classes decorated with
   annotations

* Removed
 * Annotation for decorating fields/classes that has been removed, or no
   longer used, by latest versions of teiid

* [I]TeiidServerVersion
 * get[Min|Max]imumVersion methods that convert wildcarded versions into
   non-wildcarded ranges extremes.
 * Adds tests to spi unit test project
Creates error-free Teiid 7 Parser

* jjtree template included and modified from the original project to
  generate a working teiid 7 parser

* ast nodes modified and annotated to support both parsers
Reduce dependencies on teiid client libraries

* No need for any of these classes to import teiid classes
Rename CommonNodes to ASTNodes

* Generate the CommonNodes/ASTNodes interface in TeiidNodeFactory
  so that all ast nodes are represented. Makes a syntax factory easy to
  produce.
Avoid rebuilding the nodes

* With 2 parser templates attempting to create the AST nodes, the
  committed versions are being overwritten by jjtree. Stops the nodes
  being re-generated.
Implementation of the QueryService and QueryParser

* QueryParser unites the differing versions of the TeiidParser by
  constructing a TeiidParserInstance of which the implementations will be
  either version 7 or 8.
Generate the ASTNodes from the parser tree constants

* TeiidNodeFactory.main method used to generate the ASTNodes enum as well
  as the create methods.
Begin adding unit tests for query parser

* Adds equals and hashcode methods to ast nodes

* Adds test plugin for org.teiid.runtime.client.test
WIP