Changed loading of heavy properties to be lazy by utilizing LazyProperty
Enabled integration tests for shell, ignored failing test with description of how to fix (fix is too large for this commit).
Merge pull request #1134 from jexp/lazy-property

Changed loading of heavy properties to be lazy by utilizing LazyProperty
Fixes docs bug for batch inserter and schema index.
Move create{Node,Relationship} over to the Kernel API.

As of this change all mutating operations have moved over to the
Kernel API, getRelationships(*) still remain in the NodeImpl.
These are not as "dangerous" to be able to mix with Schema operations
so they can wait another short while.
Merge pull request #1133 from thobe/2.0-schema-and-data-tx-for-create-node-and-relationship

Move create{Node,Relationship} over to the Kernel API.
Introducing LabelScanStore

A LabelScanStore has one responsibility and that is to be able to quickly
and efficiently answer which nodes have a particular label. It will be
updated with node->label changes transactionally and generally integrates
with Neo4j similarly to SchemaIndexProvider, as a kernel extension.

A default implementation using lucene is added, which can rebuild itself
during the recovery phase of the db if the index backing the scan store is
missing or corrupted.

The main point of integration for the reading of a label scan store is in
statement operations method nodesGetNodesForLabel (in
EntityReadOperastions to be precise), where a piece of code looping over
the node store is now replaced by one line asking the active label scan store
instead.

Also the graph database configuration option "load_kernel_extensions" is
removed since there are now so many essential kernel extensions that it
does not make sense to run without. Prior to removing this there was a
SchemaIndexProvider that did nothing but fail when trying to populate an
index and was returned and used when there were no provider loaded. That
would start and work, but make little sense. Instead of going further down
that path with the label scan store that option was removed and exceptions
are thrown on startup directly instead of failing at an arbitrary point
some time in when the database is used.

There's a lifecycle change to get this to work, or rather some cleaning up
of lifecycle management in NeoStoreXaDataSource in that:
 o init
   - previously: life.init()
   - now: <nothing>
 o start
   - previously: life.init(), recovery, life.start()
   - now: instantiates a new LifeSupport, life.init(), recovery,
     life.start()
 o stop
   - previously: life.stop(), force
   - now: force, life.shutdown()
 o shutdown
   - previously: life.shutdown()
   - now: <nothing>

This change works, and is cleaner, with HA where potentially multiple
start()/stop() sequences are issued