Merged two Clock interfaces into org.neo4j.helpers.Clock and removed unnecessary implementations
recreated traverser framework api classes  org.neo4j.graphdb and org.neo4j.graphdb.traversal and deprecated the ones in org.neo4j.kernel and subpackages
created new PathExpanderBuilder for buiding specialized PathExpander instances
created new PathExpanders catalogue of convenient PathExpander factory methods, and deprecated corresponding convenience methods in Traversal
opened up StandardExpander for use public use instead of just package private use
added (Bidirectional)TraversalDescription factory methods in GraphDatabaseService
Hid Javadocs for org.neo4j.kernel and subpackages
Introduce nodeGetUniqueFromIndexLookup

o Introduce StatementConstants.NO_SUCH_{NODE, LABEL, PROPERTY_KEY}
o Introduce uniqueIndexGetForLabelAndProperty
o Take an index lock for nodeGetUniqueFromIndex
o Exposes nodeGetUniqueFromIndex from Cypher as exactUniqueIndexSearch
o Rename SafeProperty to DefinedProperty
Use more realistic label names in documentation.

By convention label names are first-letter-capitalised.
Merge pull request #1167 from boggle/2.0-merge-locking

Introduce nodeGetUniqueFromIndexLookup
Merge pull request #1156 from lassewesth/fixinternalapi

Fixinternalapi
No need to check for data changes now that transactions disallow them.

Transactions now prevent a user from making data changes and schema changes in
the same transaction, so there's no need to look for data changes when creating a
unique constraint.
Removed PropertyData (the old property representation)

The move of property handling to the kernel API isn't fully done. One
aspect of that "incompleteness" is that we've get the old PropertyData
class hierarchy, while using a new very similar Property class hierarchy
in new code in the kernel API. PropertyData had one #getId() method that
Property doesn't, but that wasn't used anywhere.

Also represents tokens (label/prop key/rel type IDs) as ints instead of longs

This commit only changes the in-memory representation, not any store
format. The reason this long-->int switch ended up in the same commit as
the removal of PropertyData is due to hard conflict merging jumbling up
the two separate commits into commits that couldn't have been cleanly
applied separately.

Known store constructs still storing tokens as if they were longs:
 o IndexRule propertyKey
   from the outside it now looks like it's an int, but putting/getting
   to/from the ByteBuffer uses putLong/getLong
 o NodeLabelsField
   even from the outside it looks like longs. This is mostly due to the
   wat we decided to piggy-back on the long[] labels array, where we put
   the node id (which is a long) into that array as the first element.
   Converting this to an int[] externally would incur more array copying
   back and forth between int[]<-->long[] there.
 o HA protocol Master#acquireIndexEntryWriteLock still uses long for
   labelId/propertyKeyId to not change the protocol.
 o There might be more...