Bump elasticsearch to 1.2.1, lucene to 4.8.1, spatial4j to 0.4.1

Note this explicitly enables dynamic scripting, which was disabled
in ElasticSearch 1.2.0. This is needed in order to remove fields.
The reasoning behind this change can be found in
http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/modules-scripting.html#_enabling_dynamic_scripting.
Performance test refactoring

This commit adds a new test, TitanWritePerformanceTest, which tests
vertex, edge, and property insertion on an empty graph with and
without batch loading enabled.  The code is descended from
TitanGraphPerformanceTest last seen in
7d69240e324cb5c2bef71a25dc88fbead1697308, but it's been refactored to
use BatchGraph and helper methods in TitanGraphTestCommon for schema
creation, and to de-noisify the edge insertion pattern.

This commit removes several performance test classes:

* the two-method "PerformanceTest" and the TitanBenchmarkSuite class
  that used it.  There were no external references to these classes;
  the only reference appeared to be a block of commented code in
  TitanBlueprintsTest, which was also removed.

* SpeedComparisonBenchmark, which seems mostly subsumed by other test
  classes (except possibly the VertexList retrieval)

* KeyColumnValueStorePerformance -- this is a good idea, but it
  appears to have been barely started and never really finished.  The
  only subclass in the source tree is for the InMemory backend.
  Deleting it for now since the performance data it produces are not
  useful, but maybe we will restore and flesh it out later.

SerializerTest contained a combination of correctness-focused and
performance-focused tests.  I extracted common logic into
SerializerTestCommon, then moved the performance tests to
SerializerSpeedTest (which also bears the PerformanceTests JUnit
category).  The correctness-focused tests are still in SerializerTest.

This commit adds a new enabled-by-default JUnitBenchmarks reporter
that writes a CSV file with one line per test method.  The reporter is
internally synchronized but it isn't safe for use by concurrent
processes (e.g. multiple surefire test forks).  The file path is
target/jub.csv.  The output includes an initial header row.
Add tx vertex cache size regression test

(cherry pick of 04bba936ad9582a507401223136845eacf8c7160)
Merge pull request #664 from Lab41/es-1.2.1

Bump ElasticSearch to 1.2.1, Lucene to 4.8.1
#670

fixed #670
Added transaction log processing framework and minimal test coverage
Merge branch 'titan05' of https://github.com/thinkaurelius/titan into titan05
Major Hadoop module refactoring

This commit reintroduces the titan-hadoop-core module last seen in
3a16ea2f48fbcd8bbe74884d982ef8a39e9535fd.  The core module compiles
against the same Hadoop 2.x version as the titan-hadoop-2 module, so
in the event of an oversight failure on our part that leaks a
bytecode-level Hadoop1/2 incompatibility into titan-hadoop-core, only
the titan-hadoop-1 module will break.

This is technically inferior to the strategy used prior to this
commit.  That approach had no titan-hadoop-core module.  The
titan-hadoop-1 and titan-hadoop-2 modules shared each used the build
helper plugin to add a common source directory to the build path, so
that they had one directory containing hadoop1/2-specific sources and
also had the common source directory.  The titan-hadoop-1 and -2
modules compiled every source file using their target Hadoop library
version.  This is nice because it precludes classfile linkage errors
at runtime, but the downside is that neither Eclipse m2e nor IDEA are
capable of comprehending this Maven configuration, rendering them
little more than red-colored text editors on the modules in question.

Contrast this with the approach in this commit, where
titan-hadoop-core is compiled against a Hadoop 2 jar, and it's on us
to keep out IncompatibleClassChange-inducing ABI incompatibilites.
This raises the possibility of runtime classfile linkage errors, but
the upshot is that both Eclipse and IDEA can understand it.

This commit makes a few other changes:

* deleted BlueprintsGraphOutputMapReduce and replaced calls to its
  static methods with equivalent static calls on
  TitanGraphOutputMapReduce

* deleted BlueprintsGraphOutputMapReduceTest; there is some test logic
  in here that would be nice to port to Titan, but replacing
  TinkerGraph with Titan without breaking/rewriting the test seemed
  nontrivial

* Shortened some config keys:
  titan.hadoop.graph.input.titan  -> titan.hadoop.input
  titan.hadoop.graph.output.titan -> titan.hadoop.output

The config changes are barely tested.  The config keys are probably
going to get tweaked again in the future to fit them into a
ConfigNamespace and/or to avoid potential collisions with other keys
in the titan.hadoop.graph.input prefix (e.g. "location").
Merge branch 'titan05' of github.com:thinkaurelius/titan into titan05
Titan-Hadoop assembly-related fixes

* Added the old data/ directory from the Faunus zipfiles back into
  titan zipfiles as the example-data/ folder (to reduce the potential
  for confusion with the db/ directory used by the Cassandra and BDB
  configs we distribute)

* Removed several duplicates of Faunus data files

* Fixed titan-hadoop meta.properties generation.  This file stores the
  titan-hadoop version and the name of the default job jar.  It's
  parsed by titan-hadoop's Tokens class.  I broke it when pulling
  titan-hadoop-core out into a separate module yesterday, but now it's
  working again (I think) for both titan-hadoop-1 and -2, though I've
  only tested -2.

* Added a mapred-site.xml to the zipfile distribution.  It sets the MR
  execution framework to "local".  The presence of this file makes it
  easy to change to YARN or classic (I changed it to yarn when
  testing).

* Tweaked the log4j-gremlin.properties in the Titan zipfile to disable
  spurious config deprecation warnings caused by HADOOP-10178
  (https://issues.apache.org/jira/browse/HADOOP-10178)
Tweak gremlin.sh log4j config for Hadoop

The root logger and org.apache.hadoop loggers now have separately
configurable loglevels.  Invoking `gremlin.sh -l <LEVEL>` sets both
loggers to the same level.  Exporting `GREMLIN_LOG_LEVEL` and
`GREMLIN_HADOOP_LOG_LEVEL` before invoking `gremlin.sh` withouth the
`-l` option allows different levels for each logger.  The defaults are
WARN for the root and INFO for Hadoop.  Setting Hadoop to INFO makes
job progress information visible.
Debug tweak in simpleLogTest
Attempt to fix #661

When HBaseStoreManager creates Titan's table, it creates the table and
one column family inside the table simultaneously (in the same admin
API call).  This differs from the old behavior, where
HBaseStoreManager would first create the table with one API call, then
create a CF in the table with a subsequent API call.  This may fix

This commit also adds a new method to the HBaseCompat interface to
future-proof HBaseStoreManager's use of HTableDescriptor constructor
signatures deprecated in 0.96+.
Remove default value for storage.backend

The last default, "local", hasn't been valid for a while now.
Log more exception info in ConfigurationUtil
Fix titan-hadoop-1's hbase deps

titan-hadoop-1 erroneously pulled in hbase 0.98.3-hadoop2 artifacts
with scope provided from titan-hadoop-parent.  This in turn pulled in
a bunch of Hadoop 2.2.0 jars.  I've changed titan-hadoop-1 to use
HBase 0.94.12 and left titan-hadoop-2 and -core on 0.98.3-hadoop2 for
the time being.

It would be nice to pull out the 0.98.3-hadoop2 and 0.94.12 version
constants as maven pom properties in a future commit, so that they
could be easily changed.
Disable fork reuse in titan-hadoop Cassandra tests
Enable failsafe plugin in titan-hadoop-1 & -2
Adding debug log msg in HadoopPathElement
Debugging tweaks around LinkMapReduce

Adding some log messages, including one that dumps the entire job
config when LinkMapReduce is missing a required config key.  Also
added a precondition in the HadoopPipeline method that implements link
steps.