Fixes a recovery issue with deleted nodes

There was an issue where this scenario might happen:

 - TX1: Node N exists and has property record P
 - rotate log
 - TX2: P gets changed
 - TX3: N gets deleted (also P, but that's irrelevant for this scenario)
 - N is persisted to disk for some reason
 - crash
 - recover
 - TX2: P has changed and updates to indexes are gathered. As
   part of that it tries to read the labels of N (which does not
   exist a.t.m.)

We can actually just assume that if this happens and we're in
recovery mode that the node in question will be deleted in an
upcoming transaction, so just skip this update.
Remove MarkOptionalNodes, which is no longer needed
Removed tx.finish() warnings from Cypher
Add test to verify KernelStatement closes label scan readers
Add forgotten license header. Meh.
Makes index creation idempotent in Cypher
Make Cypher asking for node by id in WHERE not throw exceptions
Clarified build requisites
Work on docs around match, merge, optional match, start, using.
Merge pull request #1326 from tinwelint/2.0-fix-node-deleted-recovery-issue

Fixes a recovery issue with deleted nodes
Properties support for BigLabelStoreGenerator
Fix typo
Merge pull request #1327 from systay/minor-cleanup

Minor cleanup of Cypher