Temporarily removed section that was causing build problems
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...
More efficient cache representation of node labels

o Previously represented as Set<Integer>, now as int[].
o Also labels are included in sizeOf calculations.
Simplify Property type hierarchy.

With property key IDs being int, we can store the id in the root of the hierarchy
and still maintain the same (minimal) object size overhead. This allows us to
remove a few types from the hierarchy.
Merge pull request #1169 from tinwelint/2.0-remove-property-data

Removes old PropertyData and uses int instead of long for tokens
Fixes a race condition between index population and incoming updates

where the index could end up having duplicates (or more) for any given
entry.

Solution is to change (and clearly document) the contract of the
IndexPopulator#update method in that all updates must be applied in an
idempotent manner. This will incur an overhead in the index population,
but it's a background process and updates comes in in batches so the
overhead is somewhat minimized. Data coming in via IndexPopulator#add does
not have to be checked for idempotency and that fact was clarified a bit
in the javadocs as well.
Better handling of lucene corruption.

 o Label scan store now halts database start if lucene is corrupt, with an exception explaining how to resolve the issue.
 o Lucene provider for new indexing now marks corrupt indexes as failed, such that the user manually must drop the index and re-create it.
Remove the last references to deprecated Transaction.finish() from production code.
Remove unused old ShortString stuff.
Remove some calls to Transaction.finish() from test code.
Merge pull request #1171 from benbc/2.0-remove-deprecated-finish-calls

2.0 remove deprecated finish calls
converting nested literal maps for java compatibility
Correct result type of labels() function

Now collection of strings. Fixes #1173.
Move a functional test from its own folder to src/test.
Merge pull request #1175 from tinwelint/2.0-index-popupation-deduping

Fixes a race condition between index population and incoming updates
Merge pull request #1174 from cleishm/labels_type_fix

Correct result type of labels() function
Merge pull request #1165 from jakewins/dont-start-on-corrupt-idx

Better handling of lucene corruption.
Merge pull request #1180 from benbc/2.0-move-integration-test

Move a functional test from its own folder to src/test.
Descriptions for public packages.