Unignore varlength tests
Refactoring of how logical plans for expanding into an existing identifier is handled
Fixes cardinality estimation problems around LIMIT
Reenable ignored cypher index usage acceptance test
Merge pull request #3580 from systay/expand-plan-refactoring

Expand plan refactoring
Merge pull request #3599 from systay/limit-cardinality

Fixes cardinality estimation problems around LIMIT
Merge pull request #3600 from davidegrohmann/2.2-reenable-test

Reenable ignored cypher index usage acceptance test
Fix parent in neo4j-harness.
Introducing GraphDatabaseService.execute(...)

Enables executing cypher queries without having to keep track of an
ExecutionEngine instance, instead the database keeps the ExecutionEngine
internally.
Unignored tests in Cypher.

Mostly just unignoring tests, but some small fixes to get green.
Merge pull request #3410 from thobe/2.2-gds-execute

Introducing GraphDatabaseService.execute(...)
Merge pull request #3603 from pontusmelke/unignoring-tests

Unignored tests in Cypher.
Unignored test in Cypher.
Ignores empty property values from CSV input

by adding an additional CharSeeker#tryExtract returning whether or not a
value was extracted. Extractor#extract was changed to return whether or
not a values extracted for this occasion as well. The existing
CharSeeker#extract method throws exception if no value was extracted.
  Therefore skipping of empty values is consistent, whereas previously
non-primitive extractors could return null which was the only tell whether
or not a value was extracted.
Merge pull request #3612 from tinwelint/2.2-csv-input-optional-values

Ignores empty property values from CSV input
Refactor NeoStoreDataSource into modules, with clear dependencies (external and internal), and introduce Recovery,LogRotation, and LogPruning as separate processes.

The recovery process now works on its own channel to the underlying logs, so there is no longer any assumption that after recovery PhysicalLogicalLog can continue with the same channel. Instead it opens its own channel and moves to the end.
At the end of recovery, the log is truncated at the last properly read transaction, to cut off any scrambled transactions due to killed processes.

UpdateableSchemaState and its implementation didn't have anything to do with IAGD, so it was moved into NSDS.

Log pruning is now a separate process, that uses monitor callbacks to trigger when to run.