Internal server cleanup

This does not go quite as far as it should, but goes a little way towards
cleaning up stray items in the server. The package structure needs a bigger
cleanup, but that job is much more complex as several interfaces in the
internal packages are exposed as public API and are thus unmoveable directly.

- Remove unused services and classes
- Move REST service classes into rest package
Fix error in UNWIND docs.
Merge pull request #3516 from nawroth/2.0-unwind

Fix error in UNWIND docs.
Merge pull request #3507 from jakewins/2.1-server-clean

Internal server cleanup
Merge remote-tracking branch 'upstream/2.1-maint'

Conflicts:
	community/server/src/main/java/org/neo4j/server/AbstractNeoServer.java
	community/server/src/main/java/org/neo4j/server/CommunityNeoServer.java
	community/server/src/main/java/org/neo4j/server/NeoServerSettings.java
	community/server/src/main/java/org/neo4j/server/configuration/Configurator.java
	community/server/src/main/java/org/neo4j/server/database/DatabaseHosting.java
	community/server/src/main/java/org/neo4j/server/database/DatabaseRegistry.java
	community/server/src/main/java/org/neo4j/server/modules/StatisticModule.java
	community/server/src/test/java/org/neo4j/server/StatisticsCollectionEnabledDocIT.java
	community/server/src/test/java/org/neo4j/server/database/DatabaseHostingIT.java
	community/server/src/test/java/org/neo4j/server/database/DatabaseRegistryTest.java
	community/server/src/test/java/org/neo4j/server/webadmin/rest/RootServiceDocTest.java
	enterprise/server-enterprise/src/main/java/org/neo4j/server/enterprise/EnterpriseNeoServer.java
Merge the 2.1-maint merge
Merge remote-tracking branch 'upstream/2.0-maint' into 2.1-maint
Merge branch '2.1-maint'

Conflicts:
	community/cypher/docs/cypher-docs/src/test/scala/org/neo4j/cypher/docgen/UnwindTest.scala
Use a DURATION parser when reading the 'query time to live' from the settings

- make sure that the queryPlanTTL is read before the creation of the compilers and injected when needed to avoid
  single components to read the configuration.
Inject a Clock instead of creating manually Dates for retrieving time in plan fingerprint
Check txId on the candidate stale plan after having check the timestamp

- better code for accessing the last tx id
Inject statistics divergence threshold into the ExecutionPlanBuilder