Improve performance of teiid view by reducing number of refreshes

* TeiidServer
 * Moves the server listener to TeiidServerManager
 * Adds a notify flag that can turn off the firing of the
   refresh listener
 * Adds a reconnect method that makes use of the notify flag
   so reducing the number of server refreshes

* TeiidServerManager
 * Adds the server state listener that used to be in TeiidServer

* TeiidServerContentProvider
 * Finish the refresh thread on disposal of the provider

* TeiidResouceNode
 * Ensure an error is set for the node even if server is null
Remove references to Assertion and AssertionUtil

* Replaces references with CoreArgCheck
Refactor and merge util classes in legacy plugin

* org.teiid.designer.legacy includes util classes duplicated in
  org.teiid.core.designer.

* Moves classes to core plugin and merges duplicate classes
Replace calls to CorePlugin with CoreModelerPlugin

* Replaces remaining calls to teiid class CorePlugin with designer class
  CoreModelerPlugin
Replace calls to teiid utility classes

* Replaces calls to EquivalenceUtil and ExternalizeUtil with designer
  classes
Replace teiid logging calls

* Replaces calls to teiid classes, eg. LogManager, with designer class
  equivalents
Remove calls to teiid exception classes

* No need to keep calls to these exceptions since catch statements can use
  Exception instead
Replace calls to teiid classes

* Base64
* ReflectionHelper
* LRUCache
 * Bring class over from teiid replace calls to teiid library version

* Remove references to ObjectConverterUtil and replace with designer code
Add version of TeiidURL to designer

* Class taken from teiid codebase

* TeiidURL used in limited locations but necessary but not important enough
  to force dependency of teiid plugin.
Remove pointless import

* No need for import as only used in a comment
TEIIDDES-1518: Remove references to AdminApi

* ExecutionAdmin
 * Confine the admin field
 * Add additional API methods so the teiid server (and other classes) can
   delegate appropriately
TEIIDDES-1518: Change TeiidServer.getAdmin to connect

* Refactors the getAdmin method to connect in preparation for its changing
  purpose and minimising its use
TEIIDDES-1518: Reduce exposure of TeiidServer's ExecutionAdmin

* Make the TeiidServer's ExecutionAdmin object completely private to
  TeiidServer.

* Mirror the main methods of ExecutionAdmin in TeiidServer and
  delegate them to the ExecutionAdmin internal field

* Creates IExecutionAdmin interface to allow different implementations
  of ExecutionAdmin further down the line
TEIIDDES-1518: Remove ExecutionManager class

* Class is no longer used.
TEIIDDES-1518: Confine the use of VDB class

* Since the VDB class will be version dependent, confine its use to
  implementation classes of a teiid 8.0 client, ie. ExecutionAdmin
  and TeiidVdb

* Tries to avoid referring to TeiidVdbs where possible but if
  necessary uses the interface ITeiidVdb instead.
TEIIDDES-1518: Remove pointless use of AdminException
TEIIDDES-1518: Confine the use of Translator class

* Since the Translator class will be version dependent, confine its
  use to implementation classes of a teiid 8.0 client,
  ie. ExecutionAdmin and TeiidTranslator.

* Since TeiidTranslator wraps the version dependent Translator,
  the interface ITeiidTranslator is used externally.

* The PropertyDefinition class is also version dependent and forms
  part of the TeiidTranslator API. To address this a version
  independent TeiidPropertyDefinition rewraps all the values of the
  property definition.
TEIIDDES-1518: Refactor teiid plugin

* Rename and move teiid plugin to its own directory in the codebase.
  This teiid plugin becomes org.teiid8
TEIIDDES-1518: Remove unnecessary dependencies on org.teiid

* Removes org.teiid.8-2 plugin dependencies
TEIIDDES-1518: Create interface for TeiidDataSource

* Makes the codebase more flexible and easier to create a common spi