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.
Update planning of optional match in Ronja

Before this change, planning of OPTIONAL MATCH
was done as if order between these clauses was
not important. This change respects the order
of the clauses, and simplifies which operators
are used in solving them.
Change how greedy the greedy planner is

Before this change, for each step taken in the planning process,
a single best plan would be picked, and added to the plan table.
This would prune out any plans covered by the new best plan.
After this change, Ronja picks the best plan per set of covered ids.
This broadens the search space some, and prepares the planner
to be able to find more effective plans for queries with cycles.
Hash join support for joining on multiple keys.
Merge pull request #3144 from systay/new-new-greedy-strategy

[2.2] Better plans for patterns with cycles in Ronja
Disable START n = node(...) in favor of MATCH n WHERE id(n) = ...
Add legacy index hints to the query graph
Build legacy index seek plans
Started fixing tests that use the discontinued start clause to use newer match/id syntax
Updated cypher docs to new syntax without start clause
Change scoping rules for UNION

1) Create a child scope for the LHS and RHS of a union clause.
2) Move the "columns have to be the same" check to semanticCheck.
Merge branch 'start-hints'
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