TEIIDDES-1776: Refactor TeiidServerManager and ModelerCore

* Both ModelerCore and the TeiidServerManager reference the default teiid
  server and share responsibilities for listeners and notifications. This
  is prone to error.

* Make the TeiidServerManager the single manager of all server-related
  activity.

* ModelerCore
 * Reference the teiid server manager rather than the default server as
   delegate all server-related calls to this manager
 * Since the teiid server manager is required, the current implementation
   of explicity initialising the manager in the dqp plugin cannot be relied
   upon since that bundle can be called later than functions in ModelerCore
 * Gets the singleton instance of the server manager from an extension
   points

* ITeiidServerManager
 * Extracts interface from the TeiidServerManager class for use by the
   rest of the codebase and the extension point

* TeiidServerManager
 * Provides a default constructor to allow the extension point to create an
   instance
 * Transfers functionality from ModelerCore related to the default server

* org.teiid.designer.spi
 * Adds server manager extension point and interface
TEIIDDES-1776: Be far less aggressive with closing editors

* The TeiidServerManager is responsible for closing all editors on startup
  since the default server version is assigned (so changed from null to
  the restored version).

* Adds in a RESTORING state which can be checked by the closeEditors
  function to avoid closing any editors on startup

* Instead of closing all editors, try and find the resource associated with
  each editor and if the resource's parent project has a modelling nature
  then close the editor. This should confine closures to just modelling
  diagrams.

* DiagramEditorInput
 * May be called and be used for displaying a model, in which case implement
   adaption into an eclipse resource so that it too close be closed if
   required.