Add monitor to NamedThreadFactory, so we can track what component created what nr of threads and when.
Merge branch 'master' into threadmonitors

Conflicts:
	community/kernel/src/main/java/org/neo4j/kernel/InternalAbstractGraphDatabase.java
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
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
Get rid of warnings around snippets in the ACL example.
Merge pull request #2792 from nawroth/1.9-maint

Get rid of warnings around snippets in the ACL example.
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.
Begin work on a StampedLock based PageCache
Extract out the PageSwapper concept

Pages are now responsible for reading and writing to StoreChannels, while the PageSwapper tells them what and where to swap.
More work on the Muninn PageCache.

It currently fails 11 out of 36 tests, but we're getting there.
The MuninnPageCache implementation now pass all the existing PageCacheTests

There are still bugs in it, however, for which new tests will have to be added.