Some initial, very thin starts to these classes to get us talking.
The KEngine implementation

* KEngine is responsible for initialising the repository which is loosely
  coupled using the service API

* The repository plugin takes care of the implementation of the repository
Merge remote-tracking branch 'dan/engine' into engine

Conflicts:
	plugins/org.komodo.core/src/org/komodo/core/KEngine.java
Further implements notifications between KEngine and Repositories

* Provides framework for repositories to receive notifications from
  KEngine using generic IReposioryClient interface and accompanying events
Merge branch 'master' into HEAD
Implements local repository with internal modeshape engine

* Implements LocalRepository class and provides rudimentary unit tests
Converts the local repository to run on its own thread

* Moves the local repository plugin into core as no point in them being
  separate

* Moves the modeshape engine to its own thread
 * Stops UI freezing when the engine is started and when queries are
   undertaken. This may not be an issue now but will certinally be in the
   future and important to do it now before we run into such issues.

* LocalRepository interacts with modeshape thread through notifications and
  callbacks.

* Clients interact with the local repository by adding themselves as
  observers to the local repository. In time this will be extended to cover
  modeshape's internal observer listener events.

* Unit test modified to support waiting for the modeshape engine to start
  on its own thread prior to testing its state.
Merge pull request #30 from phantomjinx/engine

Converts the local repository to site on its own thread
Merge branch 'engine'
Provides unit testing for DDL / TSQL sequencers acting together

* *.json
 * Fixes the path expressions of the sequencers so that the TSQL sequencer
   is initialised when a [teiid]ddl:queryExpression property is added to
   the repository

* TeiidSql.cnd
* TeiidSqlLexicon
* TeiidCndGenerator
* TeiidSqlSequencer
 * Rather than storing the teiid version in the output node, it would be
   better to attach it to each language object as it is sequenced

* TeiidVersionProvider
 * The Teiid version is vital to the correct parsing of SQL statements so
   should be obtainable from an easily accessible source. Likewise, it
   should be easily updateable. Thus this provider in the spi simply stores
   the current teiid version value, allowing it to be accessed from the
   sequencers as well as any other part of the application

* Refactors tests to better co-ordinate abstract parent classes and reduce
  method duplication. Also, adds Sequencers tests for testing the
  sequencing of DDL statements using both sequencers
Merge remote-tracking branch 'upstream/engine'
Refactor IOutcome interface

* Renames implementation to OutcomeImpl

* Renames interface to IOutcome
Renames interfaces in org.komodo.spi.query

* Removes the 'I' prefix and renames their implementations appropriately
Renames interfaces in org.komodo.spi.query.metadata

* Removes I from interface names

* Renames implementations appropriately
Renames interfaces in org.komodo.spi.proc*

* Removes I from interface names

* Renames implementations appropriately
Renames interfaces in org.komodo.spi.repository

* Removes I from interface names

* Renames implementations appropriately
Renames interfaces in org.komodo.spi.runtime

* Removes I from interface names

* Renames implementations appropriately
Renames interfaces in org.komodo.spi.runtime.version

* Removes I from TeiidVersion interface name

* Renames TeiidVersion implementation to DefaultTeiidVersion
Renames interfaces in org.komodo.spi.type

* Removes I from interface names

* Renames implementations appropriately
Renames interfaces in org.komodo.spi.udf

* Removes I from interface names

* Renames implementations appropriately