Improve performance of page faulting

It turns out that querying the size of a file, though a FileChannel, is quite slow.
This change make the page cache track the sizes of files precisely, so we don't
have to call FileChannel.size() on every swapIn().
Fix race condition between constraint creation and slave write.

This removes two race conditions present in 2.2 where a constraint creation
could be violated by a commit coming from a slave. By grabbing a schema read
lock on every slave commit, we ensure exclusive access to committing schema
transactions.
Refactorings and improvements on batch importer staging

The staging framework for the ParallelBatchImporter has been
changed to reduce time spent in the framework itself as well
as reporing much more accurate statistics.

- Simplified Stage to only have #add(Step), instead of input/add
- Simplified and streamlined waiting of conditions in individual steps
  where conditions are first busy waited a little while, to then
  back off to a sleep strategy.
- Improved accuracy of statistics of upstream/downstream idling,
  possible since better placed for measuring was found.
- DetailedExecutionMonitor will find and print which step is the
  current most likely step to be the bottle neck in the stage.
- Correctly and efficiently follows the contract of a step, where
  batches must be sent downstream in the order they arrived, which
  implies total ordering as a whole between steps. Previously there
  was too strict checks such that some parallelization was hindered.
Removes unecessary console output from tests
Improve performance of page faulting

By not spinning so much on the LockSupport.unpark() call, because that can
cause a lot of interferrence with the eviction thread, while it is trying to
get some work done with evicting pages.
Fixes autoindexer issue with excessive Remove commands for property changes

The autoindexer provided the "facility" of lazily removing properties from the
 autoindex when those properties were removed from the list of properties
 to autoindex. This however led to Remove commands to be issued for all
 remove and set calls on all properties no matter if they should be tracked
 or not, as long as auto indexing was enabled. It would do so moreover
 for every such call in a transaction.
This patch reverts this behaviour (and updates the documentation) to
 not dealing at all with properties that are removed from the list
 of auto indexed properties.
Switched tests to use the new planner.
Rename setEstimatedCardinality to withEstimatedCardinality
Merge branch 'digitalstain-1.9-fix-versioned-election' into 2.0-maint

Conflicts:
	enterprise/cluster/src/main/java/org/neo4j/cluster/protocol/atomicbroadcast/multipaxos/context/ClusterContextImpl.java
Merge branch 'digitalstain-1.9-fix-versioned-election' into 2.1-maint

Conflicts:
	enterprise/cluster/src/main/java/org/neo4j/cluster/protocol/atomicbroadcast/multipaxos/context/ClusterContextImpl.java
Updates changelogs for 1.9.9
Merge pull request #3163 from digitalstain/1.9-fix-versioned-election

[1.9] Solves issue with election results from a rejoining elector being dropped
Updates changeslogs for 2.1.5
Removes unecessary LogEntryShuffler ported over from a merge
Removes unecessary LogEntryShuffler ported over from a merge
Merge pull request #3137 from jakewins/2.2-batchblock

[2.2] Fix race condition between constraint creation and slave write.
Fixes compilation error in ElectionContextTest. Static import Mockito.mock()
Fixes compilation error in ElectionContextTest. Static import Mockito.mock()
Fixes a path issue when explicit store name given
Fix compilation error