FaunusSerializer instantiation test

Creating a new FaunusSerializer for every edge processed by
EdgeCopyMapReduce ends up creating a separate Kryo for each of those
edges and consuming more than half of the CPU time under certain JVM
and workload configs.  This commit is an experimental change limited
to EdgeCopyMapReduce.java and is not a general fix -- just testing to
see if it alleviates the problem in testing.
Share one StandardSerializer throughout Faunus
Stop forcing default jobdir value to null
Make copyFromLocal avoid truncating local files

Copying to and from the same file on the LocalFileSystem would
normally result in truncating the file.  Now
HadoopLoader.copyFromLocal attempts to detect this condition, log a
message, and return without doing anything.
Set non-null default value for Faunus jobdir
ConfigOption-ify EdgeCopyMapReduce
Rename ScriptIOFormat config option

"file" is now "script-file"
Add @Override on methods in a RecordReader impl
Rename Faunus's Titan IOFormats

consider the following classname (before this commit):

   com.thinkaurelius.titan.hadoop.formats.titan.cassandra.TitanCassandraInputFormat

Repetition of "titan" has kind of gotten out of hand during
refactoring.  This commit removes the "titan" between "formats" and
the hbase/classandra subpackage names.

The Faunus config files are _not_ updated in this commit.  I have
config file changes from multiple code commits mixed in my working
copy.  Going to commit those changes all together after the code
rather than try to manually diff-edit properties files with `git add
-i` (and probably get the diff-edit wrong).
Faunus cfg file updates
Reduce num_tokens in zipfile cassandra.yaml

num_tokens=256, the upstream default, results in Faunus firing off at
least 256 mappers for every job, even if it's just Graph of the Gods.

Reduced num_tokens to 4 in the cassandra.yaml file that ships in the
Titan distribution archives, added a comment recommending increasing
it in production deployments.  This file is only used by titan.sh and
by the embedded Cassandra adapter right now.
Update titan-cassandra-es.properties

Since titan.sh forks a standalone ES process, I think it's now
reasonable to make titan-cassandra-es.properties connect to that
forked ES process rather than start up its own embedded process.

The config options to start ES in embedded mode (the old behavior for
this config file) survive as comments in the file.
Fix #699

BerkeleyJETx should allow a null tx reference to support
configurations where transactions have been disabled
Rename two addVertex overloads that take a label

Fix #702

Lead up to this commit:

TitanTransaction.addVertex(VertexLabel) and addVertex(String) both
take a vertex label argument.  TitanBlueprintsTransaction and TBGraph
define addVertex(Object).  The Object overload doesn't contain any
implementation logic by itself; it does instanceof checks on the
argument and calls another addVertex overload based on what it finds.
If the argument is a String, it calls the
TitanTransaction.addVertex(String vertexLabel) overload.

This behavior is incompatible with Blueprints.  Calling loadGraphML
(which in turn uses BP GraphMLReader and BatchGraph) on a file just
containing <node id="1"/> results in Blueprints calling
TitanTransaction.addVertex(Object) with the String "1".  Titan sees
that the argument is a String and attempts to interpret "1" as a
vertex label.  However, the implicit contract/intent on the Blueprints
side was to have "1" interpreted as a user-assigned ID (or, in the
specific case of Titan, to have Titan ignore that ID argument entirely
and self-assign an ID).

This commit renames the two TitanTransaction.addVertex methods that
take a vertex label to addVertexWithLabel.  It also modifies
TitanBlueprintsTransaction.addVertex(Object) to ignore arguments of
type String.  Now only addVertex arguments of type Number or
VertexLabel are considered by Titan.  Arguments of other types are
ignored.
Add num_tokens to Cassandra Murmur3 test config

The BOP config still leaves num_tokens unspecified, but the Murmur3
config now specifies num_tokens: 4.  This helps mitigate TIME_WAIT
socket pileup during Faunus testing.
Make ReflectiveConfigOptionLoader try directories

It skipped directories prior to this commit for -- I think -- no real
reason.  I tripped over this while debugging #701.  Now it will look
in directories.  It will still ignore classpath entries that either
don't exist on the filesystem or which aren't readable.
Include exception in a config-parsing log message
bin/ scripts to follow symlinks

Since many applications now symlink one, or more, times into multiple directories these
scripts needed updated to accurately follow said symlinks. Previously, if symlinks were
present, the script would fail to find all of the .jar files in the library because it
would only find the immediate path it was installed in. For example, if we symlinked
rexster.sh to /usr/local/bin/rexster and attempted to call it, the script would only
look in /usr/local/lib/ for its jar files which would fail to launch.
Updated to correctly find the home directory of cassandra (up a single directory from the return point)
Adding empty file