Reduces garbage left behind in /tmp

o RRD file location when impermanent db was supplied as a directory, which
  made opening it always fail and create one extra "rrd-invalid"
  file/directory that the tests didn't clean up.
o Generally making sure tests that create temp file deletes them in @After
Refactoring in preparation of doing uniqueness checking while building indexes with lucene.

Added FAILURE type parameter to Visitor interface to allow checked exceptions to propagate.
Introduced IndexProviderCompatibilityTestSuite to verify contract of schema index providers.
Early stages of uniqueness checking during lucene index population.
Merge pull request #790 from tinwelint/2.0-reduce-tmp-garbage

Reduces garbage left behind in /tmp after tests
Adds the MERGE Cypher command to the Neo4j shell