Fixed a slow id generator rebuild high id issue

where the high id would be set too high.
Also removes a test that, using complicated breakpoint testing, basically
tested that IdGeneratorImpl#setHighId throws exception when given -1 as
high Id. Replaced with a unit test.
Fix formatting of the description of the mapped_memory_total_size configuration
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.
Fixes an issue where id generator picked up freeId calls during recovery

where it shouldn't have done so. It's due to a recent change removing the
recovery flag for the stores. Now setStoreNotOk() sets idGenerator null so
that even if the id generator was opened cleanly, but later we found out
that the store needed recovery we would clear it so that the id generator
wouldn't pick up freeId calls during recovery.
Remove metadata/id from the representation

Pending discussion on its format
ExpandPipe should use relation type indices when possible

This change lets ExpandPipe use relationships ids instead of names whenever all ids in question are resolved.
Fixes a race where multiple threads were writing to the same  channel

and they all called channel.position(position) / channel.write(data),
whereas they now call channel.write(data, position)
Return null instead of throwing SchemaRuleNotFoundException when index not found
Enabled parallel I/O writing in test to try to expose problem

that has been previously seen where some pages wasn't written properly.
VarLengthExpandPipe uses token ids whenever possible.

When all relationships tokens are resolved VarLengthExpandPipe
uses these instead of using the name.
Merge pull request #3151 from cleishm/metadata_no_id

[2.1] Remove metadata/id from the representation
Tweak selectivity and costs

* Improved equality comparison selectivity
* Cost model now separates operators between IO and CPU bound
* Tweaked default index selectivity
Merge pull request #3146 from tinwelint/2.2-freeid-during-recovery-fix

[2.2] Fixes an issue where id generator picked up freeId calls during recovery
Merge branch '2.1-maint'
Merge pull request #3142 from tinwelint/2.2-too-high-id-after-slow-rebuild

[2.2] Fixed a slow id generator rebuild high id issue
Merge pull request #3147 from chrisvest/2.2-pagecache-docs

[2.2] Fix formatting of the description of the mapped_memory_total_size configuration
Merge pull request #3155 from lutovich/2.1-no-exceptions-for-flow-control

[2.1] Return null instead of throwing SchemaRuleNotFoundException when index not found
A tool for shuffling log entries

This tool can be used to read a log file and produce an equivalent log file with shuffled entries.
Indeed it still guarantees that the commits are ordered wrt transaction id.
Merge branch '2.1-maint'

Conflicts:
	community/kernel/src/main/java/org/neo4j/kernel/impl/api/StateHandlingStatementOperations.java