Moved ownership of Config, when running the Neo4j Server, to the Server rather than IAGDB.

o Introduces new constructors for the embedded, highly available and impermanent graph databases
  that allows passing in Config directly. This was not added to the GDBFactory classes, since it
  is not meant to be a user-facing feature.

o Refactored the NeoServer and Database related classes to take advantage of this, and allow injecting
  config into the database used.

  Overall, this is a move towards consolidating the config for the whole product, eventually moving us
  to use a single config file. It is also a move towards further structuring the application to have
  shared components, owned by the assembly class which, in the case of the server, is NeoServer.

--
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
Merge branch '2.0-maint'

Conflicts:
	community/kernel/src/test/java/org/neo4j/test/BatchTransaction.java
	enterprise/consistency-check/pom.xml
Remove a test that fails in TeamCity.

There is no obvious reason why this test should fail, but since
Webadmin has been replaced by the Browser, there doesn't seem to be any
point trying to work out what is going on.
Merge pull request #1937 from benbc/remove-webadmin-test-that-fails-in-teamcity

Remove a test that fails in TeamCity.
Merge pull request #1932 from tinwelint/2.1-merge-2.0

2.1 merge 2.0
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).
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
Maps deadlock detection to proper status code in transactional endpoint. Fixes #1922
Cleans up more deprecated methods in the old traversal API.
Merge pull request #1920 from jakewins/2.1-trvclean

Cleans up more deprecated methods in the old traversal API.
Added .gitignore
Fixes an issue with tx log reading in severely damaged log files.
Batch inserter uses the same record logic code as NeoStoreTransaction

recent refactorings in and around NeoStoreTransaction has made much of the
duplicated code in batch inserter redundant. This commit makes the
batch inserter, to some extent, use the same code that NeoStoreTransaction
uses for creating, loading, deleted and connecting records in the store.
Eventually no record logic code will exist in neither batch inserter
not NeoStoreTransaction.

As a side effect this adds support for the dense node format in batch
inserter.

DirectRecordAccess makes use of Proxy objects quite a lot, so they are
pooled in a FlyweightPool so they are reused. Also, the batch set that
keeps changes to be committed is implemented as a sorted map so we can
write the records in inverse id order, this way ensuring that the file
is expanded only once for this batch.

co-author: Chris Gioran, @digitalstain