Fixes #1313 - identifiers lost when starting with WITH
Fix for recovery of constraint indexes.

o Constraint indexes do no longer verify uniqueness during recovery.
  They should not verify uniquneness at all, but that is a larger change.
o NodeRecord now correctly copies inUse flag for clone()
o NodeRecord now prints out the inlined labels it contains as a list, rather
  than as the long they are packed into.
Fix flaky shouldNotSnapshotPopulatingIndexes

The test was racing with the population job that was started, because was
initially in a populating state.

The changes introduce a latch, that prevent this population job from completing
before we have taking our snapshot, thus ensuring that the index is indeed
still populating when we take our snapshot.
Makes sure that Cypher only throws valid exception
Merge pull request #1360 from systay/1313

Fixes #1313 - identifiers lost when starting with WITH
Merge pull request #1372 from chrisvest/fix-flaky-shouldNotSnapshotPopulatingIndexes

Fix flaky shouldNotSnapshotPopulatingIndexes
Make label scan store available in consistency checker.

o Make neo4j-consistency-check depend on neo4j-lucene-index
o Add LuceneLabelScanStoreBuilder as a second, straightforward way to instantiate LuceneLabelScanStore that bypasses kernel extensions
 (which are difficult to instantiate freestanding without starting a full database)
Unused imports.
Ignored another test while I debug it.
Introduce "arguments" into the Expression base class in Cypher

Expression already has "children". The difference between the two
is that children are any expressions hanging off of an expression,
while arguments are arguments into an expression.
Cleanup of aggregation handling.
Merge pull request #1373 from systay/exceptions

Makes sure that Cypher only throws valid exception
Merge pull request #1374 from boggle/2.0-label-scan-store-verification

Make label scan store available in consistency checker.
Unused import.
Merge pull request #1366 from systay/aggregation-update

Allows aggregate expressions to be part of more complicated expressions
Fix a bug where PropertyRecords could get more than one PropertyBlock for a key.

The problem was that setPropertyBlock did not properly remove the exising blocks that it found.
It did correctly find the existing blocks, by their index, but then tried to remove those blocks
by understanding their index as their key.

The fix is to use the index as an index and remove the blocks by that index.
Break out dispatch from report in consistency check.

`ConsistencyReport.forReference(...)` was tricky to implement and didn't quite fit in with the other
methods in the ConsistencyReport interface. This change breaks that method out into a CheckerEngine
interface. CheckerEngine also holds/creates the ConsistencyReport instance, to avoid creating report
objects (dynamic proxies through reflection) unnecessarily.

This allows us to remove the generic parameters of ConsistencyReport, which makes it possible to report
on things that are not records.
Fix recovery issue for constraint indexes.

o This disables aggressive id reuse for schema store, meaning a restart is now required for reusing ids in this store.
o Addresses an issue where an index is dropped and then immediately reused and brough online, and the database then
  crashes. This creates a situation where recovery operations aimed at the original index will be targeted to the
  new index, after which the new index will be dropped and data unecessarily having to be recreated. In the constraint
  case it is fatal, because the constraint cannot come online before the index is populated, currently leading to a
  deadlock. This addresses all of the above issues.
Fixes NPE in node manager for one branch of cache population.

o Breaks out relationship loading into its own class, widdling off 60 LOC from NodeManager.
o Adds a test and fix to highlight NPE issue caught in robustness tests.
Shutdown LabelScanStore on tear down.