merging caef3b67512a4ea2af2866da88b62d199e95177a
Merge pull request #796 from lassewesth/master

Using junit instead of ruby for acceptance tests
Dedups property keys when migrating from older format

The Kernel API assumes only a single name -> id mapping for property keys,
but stores prior to 2.0 might have property keys with more than one id
attached to it. Up until now 2.0 have prevented that from happening, but
haven't removed those duplications in the migration process, so there
might be upgraded 2.0 stores with this problem still. To guard for that
the property key token "holder" has got functionality for returning all
tokens for any given name if there were more than one. This commit also
removes that extra functionality so that there's no way that duplicates
can exist or be read anymore.

Migration will now compact the property key store since the property store
will have to be scanned and updated with property key dedupings in
migration anyway.

Also cleans up around Token classes and holders. Added one Token class
that represents name+id and use it almost everywhere
instead of separate duplicate token classes. Also makes TokenHolder manage
Token or subclasses thereof for simplifying its implementation and
reducing need for subclassing it.
Increased guard timeout. This test should be waaay less flaky now on e.g. Windows
Guard timeout even more flexible on the upside
Adds the MERGE Cypher command to the Neo4j shell
Hang-prone tests got proper process dumping added

They were using DumpProcessInformationRule, but incorrectly. So this
commit fixes that as well as making DumpProcessInformation/Rule a bit more
flexible in process selection.

Also added a test for DumpProcessInformation.
Make casting of generic Visitor safe.

 Through the use of reflection for verifying the cast.
Add diagnostics for port conflicts.

Uses lsof to discover the process that has bound a port if a conflict is detected.
Adds missing license header.
Bug Fix: infinite loop in port conflict diagnostics dumper.
Merge pull request #800 from tinwelint/2.0-working-dump-proc-info

Hang-prone tests got proper process dumping added
Makes Cypher keep track and report indexes and constraints added/removed
Enforce uniqueness constraints with lucene indexes.

The implementation is still missing in a few cases, but the most rudimentary cases work.
Adds are being checked, but updates are still missing.

Introducing infrastructure for grouping together compatibility feature sets into test suites.
This is used for the index compatibility test suite, allowing each index provider to only
extend a single test class in order to verify compatibility with the SchemaIndexProvider API.
Properly stop server.

This prevents resource leaks (such as ports remaining open and conflicting between tests).
Consume HTTP response entities.

Test was not properly complete requests, leading to contention
for the client's single connection.
turning null parameter arguments into empty maps
Merge pull request #799 from tinwelint/2.0-unique-propkey-migration

Dedups property keys when migrating from older format
Merge pull request #797 from systay/merge-app

Adds the MERGE Cypher command to the Neo4j shell
Code cleanup based on IDE (intellij) warnings.

Remove unused/commented-out code.

Use emptySetOf( Type ) instead of asSet().

Limit references to the deprecated GraphDatabaseSettings.

Remove usages of deprecated junit.framework package.