Initial implementation of the relational model objects that persist to a local ModeShape repository. These model objects represent the ModeShape nodes that are created when Teiid DDL is sequenced.
Merge pull request #42 from elvisisking/relational-model

Initial implementation of the relational model objects that persist to a local ModeShape repository.
Extends DdlSequencer class into KDdlSequencer

* KDdlSequencer
 * Reduces DdlSequencer's dialects to only Teiid's. If DDL text does not
   parse or is generic, don't want to create spurious parsing errors on
   account of the wrong parser being selected for sequencing
Extracts the metadata namespaces into their own spi interface

* MetadataNamespaces
 * Exposes all the metadata namespaces and URIs to the system and avoids
   them being buried in the teiid client.
Moves teiid version and data type manager fields up to parent classes

* AbstractNodeVisitor
 * Moves the dataTypeManager field from TeiidSqlNodeVisitor to its parent
   since DdlNodeVisitor also requires it.
 * Moves version testing method to parent

* AbstractSequencerTest
 * Moves teiid version from AbstractTSqlSequencerTest to its parent since
   DdlNodeVisitor tests require it.
Introduces DDL Node Visitor - exports modeshape nodes back to DDL syntax

* DdlNodeVisitor
 * Based on Teiid's DDLStringVisitor, responsible for converting ddl and
   teiidddl nodes in modeshape back into the original string

* VdbNodeVisitor
 * Replaces use of modelDefinition expression property with hand-off to
   DdlNodeVisitor

* KeyInValueHashMap
 * Allows more efficient memory-use of hashmaps where their values contain
   their keys.

* Tests for DdlNodeVisitor based on Teiid's own unit tests for the
  DDLStringVisitor

* TestVdbExport
 * Fixes to vdb tests in light of DdlNodeVisitor introduction.