TEIIDDES-1565: Apply eclipse configuration to project

* Project and classpath configuration settings

* External tool builder for auto-generating the parser from the jj template

* Libraries copied in by maven for compilation of sources. Versions are
  stripped to allow build.properties to include them in the runtime

* Reconfiguration of pom xml to use tycho, auto-generate parser while in
  eclipse and build as a single plugin project rather than separate modules

* Provides initialise script for auto-building project dependencies

* The project requires both the TP and spi plugin to be installed into the
  maven local repository, even though the builder is not compiling but
  only adding libraries and source files.

* To make this easier for other developers, have the eclipse builder call
  the initialise script.
TEIIDDES-1565: Fix clone methods

* Instead of returning generic Object, return the correct class
TEIIDDES-1565: Modifies enumerators to use spi versions

 * References replaced with designer spi statics and enums
  * CompareCriteria statics
  * MatchCriteria.MatchMode enum
  * AggregateSymbol.Type enum
  * SetQuery.Operation enum
  * ElementSymbol.DisplayMode enum
TEIIDDES-1565: Replace reference to FunctionLibrary statics with enum

 * Uses the spi IFunctionLibrary enum rather than statics. To avoid too
   much disruption to the teiid codebase, allow the text to be accessible
   using a text() method

 * Since the IFunctionLibrary enum support an equalsIgnoreCase method, turns
   around equalsIgnoreCase tests to avoid using the enum's text() method

Conflicts:
	engine/src/main/java/org/teiid/query/function/source/SystemSource.java
TEIIDDES-1565: Prepare Mapping nodes to interface implementation

* To avoid the need for too many generics on the xml mapping node
  framework, this modifies the node classes to stop returning the instance
  itself or the method's parameter.
TEIIDDES-1565: Modify the visitors in preparation for their spi interfaces

* The teiid visitors use convenience static methods, which cannot be added
  to interfaces. So add instance methods to the visitors using the find
  prefix and let the statics use these methods. These methods can then be
  added to the spi interfaces.
TEIIDDES-1565: Add the spi interfaces directly to the teiid classes

    * Removes the intermediate designer impl wrapper classes and directly
      adds the spi interfaces to the engine language and visitor classes.

    * The CrossMetadataQueryInterface remains due to the fact that designer
      creates its own implementations of the IQueryMetadataQueryInterface
      which cannot be cast to teiid's QueryMetadataQueryInterface. Using the
      IQueryMetadataInterface in the teiid code would be too much of a
      disturbance to the codebase hence the Cross class conveniently keeps
      the transition in one location.

    * A corollary to using the CrossMetadataQueryInterface is that the wrapped
      versions of UpdateValidator, QueryResolver and Resolver must remain since
      their methods have the MetadataQueryInterface as a parameter.
Fixes lack of calling of the maven source builder

* Calls the SQLParser source and library builder during auto-builds
  to improve its usability

* initialise.sh
 * Avoids impairing performance with the more frequent executions by
   checking whether all the libraries are present and the SQLParser source
   has been generated
TEIIDDES-1614: Satisfies spi interface modification

* The IQueryResolver interface requires modifying to satisfy a change in
  the 7.7.x implementation.
Fill in the application.properties file

* This file is now used in the handshake between the client and the server
  and as such determines whether the messages communicated are stored as
  sealed objects or not.

* Teiid has the properties file filled in when its built with maven. However,
  this is not possible in the plugin since the project.version is the version
  of the Eclipse Teiid plugin rather than the source code. This substitution
  is therefore problematic and would also mean that the properties file
  would have to be wholly replaced since it is used in-place when devs
  run designer through the IDE.
TEIIDDES-1627: Fix NLS messaging errors

* Fixes the wrong package name used for intialising the NLS messages
TEIIDDES-1575 Changes required for Teiid Importer
TEIIDDES-1645: Stop IllegalArgumentException being thrown

* Its not necessary to check whether name is null since this is handled
  by DataTypeManager.getDataTypeClass() and this has the negative effect
  of throwing an unnecessary exception.
TEIIDDES-1575 corrects issue with refresh job wait method