Add test of HadoopConfiguration

This commit extends WritableConfigurationTest with three datatypes
currently used in practice but not currently tested: enums, durations,
and Object.class.  The new duration test coverage augments existing
string-duration-parsing coverage in CommonConfigTest.
WritableConfigurationTest is the base class from which the new
HadoopConfigurationTest inherits, as do the existing
KCVSConfigurationTest and CommonConfigTest classes.

This new test covers a bug in HadoopConfiguration that prevented it
from setting or getting keys with datatype Object.class.  It fails
right now.  AbstractConfiguration.getSubset requires that
WriteConfiguration impls accept Object.class.
Relax WritableConfigurationTest Object.class case

Allow WriteConfiguration implementations to return anything that is a
subtype of Object instead of something that has the exact type Object
(i.e. anything that's not a primitive or array).
Fix HadoopConfiguration's Object.class handling

It now supports get/set with datatype set to Object.class.  Sets are
serialized by toString() and gets return that String.
Remove List-valued ConfigOption support

The only List-typed ConfigOption appears to be in
AbstractCassandraStoreManager.  That use can be served equally well by
a String[].  I converted it to ConfigOption<String[]> and removed
support for List-valued types in CommonsConfiguration.

List-valued types are problematic in the ConfigOption API since we
can't check the erased type of their generic parameter at runtime.
Fix #722
Rudimentary deprecation support in ConfigOption

This commit doesn't change the way ConfigOptions are read or written
to account for deprecation.  That's still the responsibility of client
code.  I didn't want to further complicate the config subsystem with
that, at least not yet.

This commit does add a new constructor that accepts a "deprecatedBy"
option of type ConfigOption, indicating that the option under
construction is deprecated in favor of the arrgument.
ConfigurationPrinter checks for this and formats deprecated options
differently; it draws their names with strikethrough and prepends a
red "Deprecated by..." warning to the struckthrough name.  Necessary
CSS and docbook tweaks also included in this commit.

This could be theoretically be extended so that BasicConfiguration
(and others?) are aware of deprecation and will favor the successor
option when it is set automatically, or to issue warnings.  I don't
want to tackle those quite yet.  Warnings are also harder than they
sound, since we don't want to constantly spam the log with them if a
certain piece of Titan repeatedly reads a deprecated option from its
config.
Deprecate edge-copy-dir for -direction

Per #718
Option-ify Faunus's Kryo output buffer size

titan.hadoop.serializer.max-output-buffer-size now controls the
maxBufferSize parameter passed to com.esotericsoftware.kryo.io.Output
objects instantiated by Titan-Hadoop.  This is a hard upper-limit on
the size of serialized representations of objects written by
Titan-Hadoop.  It defaults to the same value which was hardcoded prior
to this commit, 10 MiB.
Refactor Faunus edge copy config handling

Reducing some duplication in how deprecation of edge-copy-dir in favor
of edge-copy-direction is handled.  Still short of a general
mechanism, just slightly cleaner than before.