Coherent behavior for all collection slice and indexing operations.

o All relevant operations - head, tail, last as well as bracket-syntax indexing
   ([x] and [x..y]) now return null for out-of-bounds operations.
Cleanup of internal classes that should not be publicly documented.

o Moves all publicly documented internal classes added in 2.0 to internal packages.
o Deprecates all publicly documented internal classes added before 2.0.
Share code for scanning through stores.

o Introduce BoundedIterable.
Merge pull request #1420 from boggle/master

Update Cypher test dependencies
Consistency checker: multi-pass processing for label scan store and indexes.
Consistency checker: delegate incremental checking to full checking.
Merge pull request #1424 from apcj/2.0-ccheck-multi-pass

2.0 ccheck multi pass
Fix bug in TxLog handling of null-bytes in log files
Refactor and clean up TxLog

There is still more that can be done, but hopefully it is now a little more readable and
in line with our house style. The parsing could for instance be split out into its own
class.
Merge pull request #1410 from systay/collection-out-of-counds

Coherent behavior for all collection slice and indexing operations.
Merge pull request #1416 from jakewins/deprecate-incorrect-packaged-things

Cleanup of internal classes that should not be publicly documented.
Organise imports.
Merge pull request #1427 from chrisvest/fix-tm-log-duplicates

Fix tm log duplicates
Add GraphDatabaseService.mergeByConstraint (Core API version of merge)

o Provides a utility for adding unique entries for a constraint (getOrCreate) with proper locking, i.e.
  transactions using mergeByConstraint block each other
o Add Merger interface and MergeResult class to core API
o Update documentation examples for creating unique nodes
o Add UniqueFactory.asMerger to integrate existing API (UniqueFactory may be deprecated in the long term)
Change locking of nodeGetUniqueFromIndexLookup

o New contract: RLock held afterwards if node was found, WLock otherwise
o Introduce ReleasableLock as a means of either manually releasing locks or registering them with the transaction