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.
Reenable ClusterMembersSnapshotTest by moving it in ha package and fix tests
Reenable a test
Remove RemoteRequestMonitoringIT which is a duplicate of TransactionMonitoringIT
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 #2778 from davidegrohmann/2.2-fix-todos

Test cleanups
Merge pull request #2784 from jexp/rel-augmentation-loop

Fixes relationship augmentation when node has self-relationships
More information in invalid entry exception message
Fixes bitmask issue in index command header reading

observed behaviour would be that the next entry in the log would be
missing a couple of bytes in the beginning, most notably the log entry
version, so that command type would be read into log entry type field
and potentially throw exception saying "unknown entry[X]" or throw an
exception in the vicinity of such command in other interesting ways.
Test cleanup
Merge pull request #2790 from tinwelint/2.2-fix-index-cmd-mask

Fixes bitmask issue in index command header reading
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