Initial rewrite of singlethreaded performance tests

These changes are barely tested.
TitanGraphSerialTest rewrite

Added new unit tests, javadoc, enabled JUnitBenchmarks, and rewrote
graph setup/data generation to run once per class without counting
that setup work in JUB method runtimes
Turned TitanGraphSerialTest into a Groovy class
Serial performance test refactoring

* Added configurable number of edge labels to GraphGenerator

* Added primary keys to GraphGenerator's edge labels (only simple keys
  are implemented right now -- no composites)

* Added gremlin-groovy dependency to titan-test and added a
  Gremlin.load() static call in GroovySerialTest

* Added a test on vertex-centric indexing using a primary-keyed edge
  label in GroovySerialTest

* Started refactoring GroovySerialTest to look less like Java and more
  like Groovy, but that needs additional work
Removing a debug stub
Refactored GraphGenerator, added GroovySerialTests

* Made a Builder static inner class for GraphGenerator

* Added support for multiple edge labels to GraphGenerator

* Renamed about half of the methods in GraphGenerator, including some
  getters and the central graph generation method

* Added two traversal test cases to GroovySerialTest

* Fixed the vertex-centric index query test case in GroovySerialTest
  to use appropriate primary key values (this was incorrect in the
  last commit but sort of "worked by accident")

* Changed formatting, semicolons, def keyword usage, and visibility
  modified usage to make GroovySerialTest more Groovy-idiomatic
Increase GroovySerialTest vertices 1k -> 10k

Also doubled transaction count from 5 to 10.  More tuning needs to be
done to bring the tests up to several digits of precision -- tests
that only take a few tens or hundreds of milliseconds only have one or
two digits of precision.
Extracted boilerplate from Groovy perf tests

This commit reduces the length of GroovySerialTest by about 160 lines
by moving helper methods into GroovyTestSupport and
LongIterator(.groovy).  Some of the helper methods in
GroovyTestSupport are now unused and will be removed in a later
commit.
Read/write Groovy test graph from a file

This commit uses Blueprints's GraphMLWriter and -Reader classes to
dump/load a file containing relations.  The schema is not saved
anywhere.  The schema is effectively hardcoded as the defaults in
c.t.t.testutil.gen.Schema.  The Schema settings (and more) used to
generate the v10k.graphml.gz file in this commit are described in a
comment near the top of GroovySerialTest.

This commit also refactors GroovySerialTest and GroovyTestSupport to
reduce a bit more boilerplate code in GroovySerialTest's domain logic.
Hiding transaction mechanics from GroovySerialTest

This commit also moves the v10k.graphml.gz relation data file used in
GroovySerialTest from titan-cassandra/data/ to titan-test/data/.
Added JUnitBenchmarks method runtime normalization

I added a new implementation of JUB's IResultsConsumer interface to
JUnitBenchmarkProvider.  This consumer gets execution data from JUB
and writes the method classname, method name, and 1000 / runtime_in_ms
to a file, in that order, separated by spaces.  JUnitBenchmarkProvider
automatically enables this consumer when the environment variable
JUB_WRITE_SCALARS is set and contains a valid file path.  It appends
to the file rather than overwriting it.

JUnitBenchmarkProvider can also parse this file via a static helper
method, returning a map of classname.methodname to millisecond
runtime.

This commit also contains some minor refactoring in GroovySerialTest
and GroovyTestSupport.
Merge branch 'master' into performance-test-rewrite

Resolved conflicts in titan-test/pom.xml.  Also replaced TypeMaker
unique(...) calls with TypeMaker vertexUnique(...).
Change /tmp/titan-test scratchdir to target/db
Reorder baseTx.commit() and deleteAllLocks()
Moved performance test tuning into JUBProvider

Logic to estimate JUB test method benchmark rounds required to run for
a total of 5 seconds, save those multipliers to a file, read them, and
modify the JUnitBenchmarks configuration accordingly is now
concentrated solely in JUnitBenchmarkProvider, instead of being split
across JUnitBenchmarkProvider and GroovyTestSupport.  The
implementation uses java.lang.reflect.Proxy to generate a dynamic
proxy annotation instance and intercept JUB's call to the
benchmarkRounds() method for each test.  This is sort of byzantine,
but it's the best I can do, given the severe limits on inheritance in
both JUnit and JUnitBenchmarks via the final keyword and restrictive
method visibility modifiers.
Comment changes, cleanup in JUnitBenchmarkProvider
Trying five BB.duplicate() removals w/ Cassandra
Merge branch 'performance-test-rewrite'
Fixes #287
Added test case for #329.