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
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.
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.
Test the page caches for correct handling of endianess
Mapping a file multiple times with different filePageSize now throws.
More PageCache testing

* Fix a bug where the StandardPageCache failed to progress to the next page
  after a next(pageId) call.
* Make sure the StandardPageCache uses the desired PageCacheMonitor in tests.
* Fix a pin/unpin counting bugs in Muninn.
Remove a dead-lock possibility in Muninn.

See the comment in MuninnPageEvictionCallback for details.