Refactoring of the top level Cypher compiler and how it handles compatibility with older compilers
Introduces ExtendedExecutionResult

ExecutionResult is an interface that, by mistake, is what older compilers implement. Because of this, it
can't be changed in future versions. By introducing ExtendedExecutionResult and having compilers
produce internal ExecutionResults that are translated to the public interface, we preserve the ability
of changing the external interface without having to recompile old compilers.
More controlled flushing of pending changes as part of closing batching neo store
Merge pull request #2785 from tinwelint/2.1-fix-pbi-flush

More controlled flushing of pending changes as part of closing batching neo store
Batch importer actually flushes the current window when told to

this to support proper shutdown of the neostore, where pending changes are
flushed and writes awaited so that the store can be closed properly.
Fixes relationship augmentation when node has self-relationships
Merge pull request #2787 from tinwelint/2.1-flush-bip-windowpool

Batch importer actually flushes the current window when told to
Merge pull request #2784 from jexp/rel-augmentation-loop

Fixes relationship augmentation when node has self-relationships
Test cleanup
Reduces object allocation per read log entry

Removes 8, or so, objects allocated per log entry read, but adds one more
object allocation per reader. A reader is used for reading one or more
transactions, i.e. multiple log entries, depending on use case.

Also fixes an issue with a VersionAwareLogEntryReader which was shared
between multiple threads, the one used in transaction cursors, so partly
reverts ee82d018901ad74546724e1af9ce230e2964b698 since it's no longer
needed.
Merge pull request #2791 from davidegrohmann/2.1-test-cleanup

Test cleanup
Merge remote-tracking branch 'upstream/2.1-maint'

Conflicts:
	community/kernel/src/main/java/org/neo4j/unsafe/impl/batchimport/ParallelBatchImporter.java
	community/kernel/src/main/java/org/neo4j/unsafe/impl/batchimport/store/BatchingNeoStore.java
	community/kernel/src/main/java/org/neo4j/unsafe/impl/batchimport/store/BatchingWindowPoolFactory.java
	community/kernel/src/main/java/org/neo4j/unsafe/impl/batchimport/store/io/IoQueue.java
	community/kernel/src/test/java/org/neo4j/unsafe/impl/batchimport/ParallelBatchImporterTest.java
	community/kernel/src/test/java/org/neo4j/unsafe/impl/batchimport/store/BatchingWindowPoolFactoryTest.java
	community/neo4j/src/test/java/upgrade/StoreMigratorFrom19IT.java
	enterprise/ha/src/test/java/org/neo4j/ha/monitoring/RemoteRequestMonitoringIT.java
Merge pull request #2796 from davidegrohmann/merge-2.1-into-master

Merge 2.1 into master
Merge pull request #2795 from tinwelint/2.2-less-gc-entry-reading

Reduces object allocation per read log entry
Merge pull request #2774 from systay/new-execution-result

Update backward compatibility for Cypher
Initial work on having DiskLayer implement the full StoreReadLayer API.

This introduces mainly a set of unsupported operations into DiskLayer, and
introduces a hidden config option to disable the cache layer entirely. Some
operations, like nodeExists and relExists, have been implemented.

This would be a first step for assessing database performance
without the object cache.