Assigns default memory size for relationship group store

The default size is 10M (or 0.03% size of nodestore if the size is allocated by AutoConfig)
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
Hide the `mapped_memory_page_size` configuration.

I don't think there's any need to put this in front of users.
It's a high-level expert setting and really should only be experimented with by us.
Order labels, relationships and property keys in drawer.
Fix error in UNWIND docs.
Generalize IndexSamplingJobQueue

- fix pollAll semantics to return values wrt insertion order
Let the database page cache be injected into the store migration, so the participants don't have to create their own if need be.

Also reduced the memory consumption of a number of tests, and transitioned many tests to using the PageCacheRule, instead of the StandalonePageCacheFactory.
Args: Make it possible to distinguish options from flags to make parsing more robust

With this change, parsing flags such as `-recovery` will never consume any consecutive symbols
in the list of arguments, such as symbols meant to be orphaned arguments.
Consistency checker fails when recovery needed but '-recovery=false' specified
After transactions were applied in recovery NeoStore is asked to rebuild id generators
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 pull request #3517 from davidegrohmann/2.2-sampling-controller-ref

Generalize IndexSamplingJobQueue
Merge pull request #3515 from lutovich/2.2-consistency-check-recovery-by-default

Fixed orphan arguments handling in Args, recovery procedure in CC and NeoStore
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
Remove unused code
Add consistency-check as a dependency of community/neo4j