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.
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.
More help for the import tool.
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
Fix flakiness: UniqueConstraintStressIT

The expected result set was not sufficiently large; specifically
creating the constraint can fail and cause some of the node creation
to fail as well, not due to a constraint violation, but due to a
concurrent schema creation on master. The old code had several
logical faults.

The slave transactions can also fail due to a ComException, due to the
RequestContext used for the lock-session on master already being
in use. This is a known and expected behaviour in itself, but it
is not really known why it occurs in this test since it only has one
thread doing slave transactions. The strategy so far is to catch
and ignore it, but it is probably worth investigating and explaining.
Fix a bug where URIs transaction end-point responses would be wrong.
Test: UniqueConstraintStressIT: Add different order of operations.

Add three more tests with different order and timing of the operations.
Lock-free loading of relationships

Removes node lock previously used during loading of relationships. This
lock would contend with committing transaction and produce latency issues.
The lock prevented cache poisoning issues introduced by race conditions
between committer and reader(s).

To achieve a lock-free solution some guards had to be added for various
corner cases. These are:
- Committers are now aware of ot he fact that, and parries for,
  concurrent readers loading and caching relationships committed by the
  committer, before the committer has put them into cache itself,
  producing duplicates when the committer would add them.
  (Issue comes from the fact that store is updated before cache).
- Committers uses knowledge about how relationhips are stored on disk to
  be able to tell if any reader has loaded the relationships it has just
  written to the store, before updating the cache. This logic sits in a
  filter which is consulted before adding relationships to the cache.
- Nodes evicted from cache as part of being upgraded from sparse to dense
  now happens as part of updating the node instead of as a separate step
  during commit. This to also guard for concurrent readers.
- Simplification and reduction of code and logic of DenseNodeChainPosition
  where all individual chain positions are initialized eagerly, so that
  the filtering logic (as mentioned above) becomes simpler.
- Ordering of relationship-related records when applying transaction
  to store changed to: relationships, relationship groups, nodes so that
  additions to relationship chains are seen atomically by
  concurrent readers.
Merge branch '2.1-maint'

Conflicts:
	community/kernel/src/main/java/org/neo4j/kernel/InternalAbstractGraphDatabase.java
	community/kernel/src/main/java/org/neo4j/kernel/impl/cache/BridgingCacheAccess.java
	community/kernel/src/main/java/org/neo4j/kernel/impl/core/DenseNodeChainPosition.java
	community/kernel/src/main/java/org/neo4j/kernel/impl/core/DenseNodeImpl.java
	community/kernel/src/main/java/org/neo4j/kernel/impl/core/NoTransactionState.java
	community/kernel/src/main/java/org/neo4j/kernel/impl/core/NodeImpl.java
	community/kernel/src/main/java/org/neo4j/kernel/impl/core/NodeManager.java
	community/kernel/src/main/java/org/neo4j/kernel/impl/core/ReadOnlyNodeManager.java
	community/kernel/src/main/java/org/neo4j/kernel/impl/core/TransactionState.java
	community/kernel/src/main/java/org/neo4j/kernel/impl/core/WritableTransactionState.java
	community/kernel/src/main/java/org/neo4j/kernel/impl/nioneo/xa/NeoStoreTransaction.java
	community/kernel/src/main/java/org/neo4j/kernel/impl/transaction/command/Command.java
	community/kernel/src/main/java/org/neo4j/kernel/impl/transaction/state/NeoStoreTransactionContext.java
	community/kernel/src/main/java/org/neo4j/kernel/impl/transaction/state/RelationshipCreator.java
	community/kernel/src/main/java/org/neo4j/kernel/impl/util/RelIdArray.java
	community/kernel/src/test/java/org/neo4j/kernel/impl/cache/CacheRaceTest.java
	community/kernel/src/test/java/org/neo4j/kernel/impl/store/TestNeoStore.java
	community/primitive-collections/src/test/java/org/neo4j/collection/primitive/hopscotch/PrimitiveLongSetTest.java
	community/udc/src/test/java/org/neo4j/ext/udc/impl/DefaultUdcInformationCollectorTest.java
Fixing manual build
Merge pull request #3529 from nawroth/import

More help for the import tool.
Merge pull request #3526 from chrisvest/2.2-rest-response-uris

Fix a bug where URIs transaction end-point responses would be wrong.
Merge pull request #3509 from chrisvest/2.2-hide-page-size-config

Hide the `mapped_memory_page_size` configuration.
Fixed issues recently introduced in primitive collections tables
Revert "Fixed issues recently introduced in primitive collections tables"

This reverts commit 269fd6ce13bc6899e4f09b82cfcf7c245fb129f0.
Revert "Merge branch '2.1-maint'"

This reverts commit 2b50d540c795d44f0c80126a913e9a9fccd895ec, reversing
changes made to fae8655a795bbe93214f316ebcf5374ed65a28c8.
Merge pull request #3530 from davidegrohmann/2.2-replan-ref

Refactor of replanning code