Adds multi-hosting service to Neo4j Server.

 o Adds a configuration database to the Server, containing
   meta data about hosted databases.
 o Adds database registry, managing live hosted databases.
 o Adds runtime reconfiguration of databases - dropping, creating,
   changing config and mode.
 o Contains several provisions ensuring full backwards compatibility
   with previous 'db' database and it's associated configuration.
   If a legacy config file exists, it overrides hosted config.
 o This commit *only* contains these new services, they are not
   plugged in. This is meant to incorporate this piece-meal by
   first moving the new code in, and plugging it in in a follow-up
   commit.

Conflicts:
	enterprise/com/src/test/java/org/neo4j/com/ServerTest.java
Redid some of the ignored UniqueIndexAccessorCompatibility tests in terms of UniqueConstraintCompatibility.

The populating IndexUpdater test, however, is not equivalent to the test it replaces, because our
pessimistic concurrency control seems to make some of those particular scenarios in the old tests,
impossible to hit through the public API.

The work of rewriting the tests is not yet done. This is just a step of the way.
Implement replacements for all the ignored index compatibility tests
Remove unused code from unique indexes.
Fix for a division by zero issue when migrating and empty db

Problem was that the legacy node store reader read one too many records so
whereas zero total nodes was reported, one was read and reportProgress
broke with division by zero (... / totalEntities).
Increate test timeout hoping that it'll be less likely to fail on the virtual build servers.
Factors out of NeoStoreTransaction the relationship manipulation logic

As part of building rolling upgrades for transitioning to dense node stores,
 it is required to have some dense node creation logic be reusable outside
 of NeoStoreTransaction. This is also useful for BatchInserter which also
 needs to replicate some of that functionality. This commit extracts
 the relDelete() and relationshipCreate() methods of NeoStoreTransaction
 into their own class so it can be reused from elsewhere.
It also introduces flyweight context for NeoStoreTransaction. The idea
 is that most of the state for NeoStoreTransaction consists of objects
 that can be reused, including the newly created RelatioshipCreator
 and RelationshipDeleter. This allows for pooling objects with a
 min/peak/target strategy pool as implemented in FlyweightPool. Doing
 so reduces drastically the amount of garbage generated, though measurements
 on that have not occured yet.
Renames WriteTransactionTest and un-@Ignores it
testing pr builds in team city, will revert
Merge branch '2.0-maint'
Merge pull request #1943 from tinwelint/2.1-migrate-empty-db

Fix for a division by zero issue when migrating and empty db
Merge pull request #1952 from digitalstain/master

Factors out of NeoStoreTransaction the relationship manipulation logic
Replace a comment with a method
Refactoring of CleanUpTask
Add CypherTestSuite that extends FunSuite with the right RunWith annotation
Use a more verbose error message when index and label scan hints are not applicable
Merge pull request #1920 from jakewins/2.1-trvclean

Cleans up more deprecated methods in the old traversal API.
Merge pull request #1934 from chrisvest/duplicate-number-index-tests-fix

Duplicate number index tests fix
Added .gitignore
Merge pull request #1963 from jakub-/cyphertestsuite

CypherTestSuite