Moving TitanGraph instantiation into RecordReaders

This should address #817.  According to that issue, Spark (and maybe
MR?) creates an InputFormat when starting a workload just to get the
splits, then throws the IF away.  Creating a graph in IF.setConf
therefore lets an unclosed graph go out-of-scope in this scenario.

This commit implements @skavulya's suggestion to move graph
instantiation into RecordReader.initialize for both the HBase and
Cassandra RRs implementations.
Failing test executing a static initializer cycle

This test triggers a unsafe cycle of dependencies between static
initializers in two classes, Backend and GraphDatabaseConfiguration,
by invoking TitanFactory.open with a shorthand parameter first thing
after the JVM starts up.  This cycle is not triggered if a file is
passed in.  This test is for #831.
Breaking static initializer cycles

GraphDatabaseConfiguration no longer contains references to Backend.
Those references have been replaced by two new self-contained enums
representing storage managers and index backends.  Fixes #831.
Fix "todo" download link in documentation

Fixes #803
Fix misplaced semicolons in docs on TitanFactory

Besides fixing syntax errors in the BDB page's example TitanFactory
invocation, I appended a semicolon after the `open()` call in the
HBase and Cassandra example TitanFactory invocations to make them
copy-paste friendlier.  All of these example code snippets declare
Java as their markup language in the docs source and use Java-style
explicit type declaration before the variable name, so I think this is
appropriate.  I didn't touch the inmemory backend's TitanFactory
snippet since the docs explicitly describe the snippet as a Gremlin
fragment.

Fixes #801
Port old Hadoop-S3 Titan wikidoc page to AsciiDoc

This commit introduces an AsciiDoc-ified copy of the content on
https://github.com/thinkaurelius/faunus/wiki/Using-Amazon-S3-for-Storage
as a new chapter (42) under the Hadoop part (IV) of the manual.
Make the Cassandra working dir fixed

The cassandra.yaml file used by titan.sh has long used relative paths
for data, commitlogs, and saved_caches, but since moving away from the
embeddedcassandra backend in favor of a standalone cassandra daemon,
we can no longer rely on STORAGE_DIRECTORY being interpreted relative
to the Titan configuration file.

This commit changes cassandra.in.sh to cd to $CASSANDRA_HOME
(typically the directory containing titan's bin/ directory, or the
grandparent of titan.sh) before starting Cassandra.

Fixes #825
Upgrade notice about Cassandra dirs

A warning to users of titan.sh in 0.5.0 and 0.5.1 porting data forward
to 0.5.2 that the script's working directory no longer affects the
location of Cassandra data directories

Related to #825