Update comment relating to CASSANDRA-5566
HBase/Cassandra read op timestamp tweaks

This commit mostly affects read timestamps used by the Cassandra
embedded adapter, which could previously break reads on columns with
TTLs set when Titan was configured for a timestamp resolution other
than milliseconds.

All of the HBase and Cassandra backends should continue to retrieve
the most recent version of rows/columns, regardless of
TransactionHandleConfig.getStartTime().  The notion of start time is
generally not practical when using native HBase and Cassandra
timestamps, since Cassandra only shows the most recent column version
and HBase retains only between 1 and 3 most recent versions under its
default configuration (and may well be configured to retain only 1).

There's also some minor refactoring in DistributedStoreManager; I
renamed "Timestamp" to "MaskedTimestamp" in an attempt to highlight
this class's sole function, which is to encapsulate some bitmask
operations on otherwise ordinary timestamps.

There is more timestamp refactoring to come after this commit; this
just focuses on some delicate changes in the Cassandra embedded
adapter and refactoring in DistributedStoreManager.(Masked)Timestamp
and its usage sites.
Some Cassandra warning cleanups
Removing start time from TransactionHandleConfig

This currently has no robust mapping to either HBase or Cassandra, and
there's little use for it in the context of BDB.  It was unused
outside of wrapper classes and test mocks.
Make testGlob tolerate unclean target directory

HDFsToolsTest#testGlob no longer relies on JUnit test execution order
and FileSystem.globStatus(...) return array element order to pass.
Honor skipTests in titan-hadoop's surefire config
Initial commit of HBase 0.98 support

I copied the shell and ruby scripts used by the test harness exactly
from 0.96 just to get started on 0.98.  We should probably update the
test harness scripts to 0.98 at some point though.
Fix HBase log config in 0.96 and 0.98
Fix description for HBase 0.98 shim
Bump HBase 0.98 ZK test version to 3.4.6

I changed the Zookeeper version used to test HBase 0.98 from 3.4.5 to
 3.4.6 to match the version shipped with distributions of
 0.98.2-hadoop2.
Disable copy-dependencies in HBase tests

This consumes hundreds of MB in unnecessary disk usage during testing
and at rest (until mvn clean).  I'd rather figure out the issues with
cached_classpath.txt generation on OS X.
Introduce HBase shim override option

Setting TITAN_HBASE_COMPAT_CLASS (in either the JVM system properties
or the process environment) to a full package and classname of a
HBaseCompat implementation overrides Titan's HBase version detection
in favor of reflectively instantiating an instance of the named class
and casting it to HBaseCompat.
Modified ReadMarker.fromNow() semantics

Prior to this commit, I was still seeing occasional nondeterministic
LogTest failures where some messages would be written to the store but
never read by a MessagePuller.  I think these failures were due to
ReadMarker.fromNow() and maxTime jointly creating a MessagePuller
slice window strictly later than the "lost" messages.  I've changed
ReadMarker.fromNow() to use the time at the moment the static method
is invoked, rather than when the associated MessagePuller initializes,
and I also changed the MessagePuller's maxTime computation.
Create HBase compat shim ConfigOption

This commit removes the old system properties and process environment
checks in favor of an ordinary graph configuration option,
"hbase-compat-class".  Aside from the source of the value, the
override behavior is the same.
Updating to Cassandra 2.0.7

Besides being the latest 2.0.x release, 2.0.7 is also the first
release in its line that fixes
https://issues.apache.org/jira/browse/CASSANDRA-6841, which has
(likely) been causing occasional "Unknown keyspace/cf" failures in the
Cassandra test suite for months.  We'll see...
Tweak titan-cassandra log4j test config

This replaces milliseconds-since-logger-was-created with yyyy-mm-dd
hh:mm:ss.SSS.  The point of this change is to make comparison of times
in different loggers/threads meaningful.

This also adds some commented lines that can be uncommented to enable
lots of DEBUG-level output in KCVSLog's implementation and tests
(under Cassandra).
Reduce test LOG_READ_INTERVAL to 500 ms

This makes the LogTest implementations a bit more responsive
Fix regression in LogTest$MessagePuller

The most important change in this commit fixes a regression that I
introduced yesterday via 7da161f9d8f2ef9f3384abcc97794df63c00412b.
Specifically, it broke the calculation of the end of MessagePuller's
column slice bounds by allowing them to straddle two timeslices.
Timeslices are mapped 1-to-1 with keys, and each individual
MessagePuller run is only supposed to query one timeslice/key.  The
regression manifested as dropping messages in the broken column slice
belonging that belonged to the later of the two timeslices.

This commit also introduces a bunch of new logging output and a
toString() implementation that I used when investigating the
regression and which will probably be useful in future debugging.
Implement toString() in log.util.FutureMessage
Adding a KCVSLog-related debug log message