TEIIDDES-1565: Fix clone methods

* Instead of returning generic Object, return the correct class
TEIIDDES-1565: Remove isFunction and isExpression methods

* No need for them and means adding superfluous extra methods to teiid
  classes
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
 * SingleElementSymbol.SEPARATOR static
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
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.
TEIIDDES-1565: Stop maven building quite so frequently

* Only generate the libraries and SQLParser after a clean rather than
  doing an auto build. Slightly less frustrating.