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.
Use Property.isDefined() to remove the need for HasProperty.

In the Kernel API, there is no need for nodeHasProperty or
relationshipHasProperty, since they are implemented as *GetProperty()
followed by isDefined() on the returned Property (or NoProperty)
object anyhow. Since this is an internal API, there is more value in
keeping it small, so we might as well do that in the places of use
instead.
Check for NO_SUCH_{LABEL,PROPERTY_KEY} inside the Kernel API.