TEIIDDES-1699: Assign Teiid Server unique id

* Allows servers residing on the same box, with the same host and port
  to be configured in the Servers View

* Move KeyInValueHashMap to a more useful location

* ITeiidServer
 * Provide a getId() method that returns the unique identifier for the server

* TeiidServer
 * Generate the unique id from the url, version and parent id

* TeiidServerManager
 * Cache the servers in a map keyed on the server id rather than a list
 * Get servers using their id rather than their url since the latter is not
   unique
 * Remove the 'old' xml state restoration since it makes little sense and
   would never produce a working teiid server due to a lack of associated
   parent server.

* DqpUiPlugin
* TeiidServerEditorInput[Factory]
 * Use the server's id rather than the url

* ServerManagerTest
 * Fixes tests in light of API and functional changes to server manager
 * Remove testing of old registry xml syntax since it is no longer used
 * Fixes syntax of second server in test registry data xml
TEIIDDES-1757 changed extension plugin loading of built-in meds
Merge pull request #181 from mdrillin/TEIIDDES-1757

TEIIDDES-1757 changed extension plugin loading of built-in meds
Merge pull request #180 from phantomjinx/TEIIDDES-1699

TEIIDDES-1699: Assign Teiid Server unique id
Scales back the manifest of ddl spi to Juno dependencies

* Since the ddl spi plugin was created using a Kepler TP, its minimum
  dependencies are based on Kepler. There is no real need and the plugin
  is inconsistent with other plugins.