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().
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.
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
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
Merge pull request #3158 from tinwelint/2.2-bip-staging-refact

[2.2] Refactorings and improvements on batch importer staging
Fixes compilation error in ElectionContextTest. Static import Mockito.mock()
Merge pull request #3164 from chrisvest/2.2-page-fault-performance

[2.2] page fault performance
Merge branch '1.9-fix-autoindexing' of https://github.com/digitalstain/neo4j into digitalstain-1.9-fix-autoindexing