Lift decision on which PlanType to use up to ExecutionPlan.run

This ensures that we use the same plan for both the profiled and normal case
Rename PlanType to ExecutionMode
Expose schemaStateFlush() from kernel
Test interaction of different execution modes with query caching
Existance of node/rel is checked before deletion
Add support for argumentIds in the exhaustive planner
Add support for hinted leaf plans in the exhaustive planner
Better output for compare expressions in plan descriptions.

When using unnamed identifiers instead of just removing all unnamed identifiers
leading to outputs like `NOT( == )`, we now output `NOT(anon[22] == anon[42])`.
Fixed issue with prematurely exhausted iterator.

By exhausting the iterator on initialization, some queries lead to a lot
of unnecessary dbhits, e.g.
````
profile MATCH (n:topic)-[r]->(m:topic) return n,r,m limit 1;

+------------------+------+----------+-------------+----------------------+
|         Operator | Rows |   DbHits | Identifiers |                Other |
+------------------+------+----------+-------------+----------------------+
|            Slice |    1 |        0 |             |         {  AUTOINT0} |
|           Filter |    1 |        1 |             | hasLabel(m:topic(0)) |
| TraversalMatcher |    1 | 11292978 |             |              m, r, m |
+------------------+------+----------+-------------+----------------------+

Total database accesses: 11292979
````
should ideally only touch a small portion of the graph but ends up touching something like
50% instead. This fix I believe fix this.
Fixes a race allowing transactions to be rotate away before applied

The problem was that there was a window after appending the transaction to
the log and before marking that transaction as committed where a log
rotation could come in and rotate the log. The rotator would not wait for
the transaction(s) that had just been appended, and potentially also
forced since it hadn't even been marked as committed yet.
So a crash right after or at least before the changes of such
transactions would have been applied and fully forced to the store would
be lost since the transaction describing those changes would not be
recovered.
Merge pull request #3699 from tinwelint/2.2-commit-vs-rotate-race-fix

Fixes a race allowing transactions to be rotate away before applied
Fix backward compability for style rules and add button for grass.

- Add button in drawer to open grass viewer.
- Fix backward compability for {id} and {type}.
Merge pull request #3691 from pontusmelke/plandescription-compare-expressions

Better output for compare expressions in plan descriptions.
Merge pull request #3700 from systay/dp-exhaust

Argument ids and hints support in exhaustive planner
Merge pull request #3697 from lutovich/2.1-double-delete-of-rel-rollbacks-tx

Existance of node/rel is checked before deletion
Merge 2.1-maint in master

Conflicts:
	community/kernel/src/main/java/org/neo4j/kernel/impl/api/LockingStatementOperations.java
	community/kernel/src/main/java/org/neo4j/kernel/impl/api/StateHandlingStatementOperations.java
	community/kernel/src/main/java/org/neo4j/kernel/impl/api/store/CacheLayer.java
	community/kernel/src/main/java/org/neo4j/kernel/impl/api/store/PersistenceCache.java
Fix the manual build
Revert "Removed outdated scripts and man pages" and "Fix the manual build"

This reverts commit c431cd803b911213e5d9382a7fa8f2883d8a7272 and f0ffe0dc26cf09629ae71eb8ba113606ad338f53.
Merge pull request #3499 from pontusmelke/bug-exhaust-iterator

Fixed issue with prematurely exhausted iterator.
Merge remote-tracking branch 'upstream/1.9-maint' into 2.0-maint

Conflicts:
	community/kernel/src/main/java/org/neo4j/kernel/impl/traversal/TraverserImpl.java
	community/kernel/src/main/java/org/neo4j/kernel/impl/traversal/TraverserIterator.java