Update deprecated cassandra.yaml options

Change two cassandra.yaml option names:

authority -> authorizer
encryption_options -> server_encryption_options
Setup MemoryMeter agent for Cassadra tests

The Cassandra tests currently spam this warning:

WARN org.apache.cassandra.db.Memtable - MemoryMeter uninitialized
(jamm not specified as java agent); assuming liveRatio of 10.0.
Usually this means cassandra-env.sh disabled jamm because you are
using a buggy JRE; upgrade to the Sun JRE instead

This downloads @jbellis's jamm project before running tests and points
the -javaagent JVM argument at the downloaded JAR file.  This
optimistically assumes JVM support for JAMM without actually checking
for it.  This means JAMM could break terribly when run using a really
old OpenJDK version or any JVM that doesn't work properly with JAMM.
Relaxing lock timestamp mismatch check

This should stop timestamp mismatch PermanentLockingExceptions from
being generated in single-process deployments as described in #302.
Merging timestamp mismatch patch from master
Partially parallelize Cassandra tests

Refactor tests in titan-cassandra into two separate executions of the
Maven surefire plugin: one for test cases requiring Cassandra's
ByteOrderedPartitioner, and another for RandomPartitioner
Added two toString() methods in locking code
Minor style changes

Removed two redundant uses of "this" keyword
Trimming Cassandra's pom.xml test configuration

Removing commented sections of pom.xml and unnecessary forking-related
test configuration settings in pom.xml
Logging changes and additions in locking code
Hacking thread safety onto LockKCVStoreTest

These changes are intended to make LockKCVStoreTest tolerate multiple
instances of its various concrete subclasses running concurrently.
These changes are barely tested.
Stop caching lock column values

If writing a lock claim to a storage backend took longer than
LOCK_WAIT_MS to complete, then later attempts to verify that lock
claim would generate a guaranteed "timestamp mismtach"
PermanentLockingException.  This should now be fixed.

This was due to an interaction between
ConsistentKeyLockTransaction#writeBlindLockClaim(...) and
LockClaim#getLockCol(long ts, byte[] rid).  The former calls the
latter.  The latter calculated a return value only on its first
invocation, cached it, and then returned it on that and all subsequent
invocations.  It did this even if the ts argument, on which the return
value depended, varied between invocations.  In cases where a lock
claim write took longer than LOCK_WAIT_MS to succeed, this caching
behavior made retries write a stale timestamp and later caused a
"timestamp mismatch" exception.  This commit makes getLockCol(...)
calculate its return value on every invocation.

This should alleviate one potential cause of timeout mismatch
exceptions as discussed in #302.
Merge master into cassandra-test-refactoring

Conflicts in ConsistentKeyLockTransaction.java were whitespace and
logging-statement related.
Allow timeouts when stress-testing ID authorities

This commit changes LockKeyColumnValueStoreTest's
testMultiIDAcquisition().  Now the tolerates ID authorities that
intermittently throw StorageException (e.g. due to a backend timeout),
so long as the correct number of correctly-sized id blocks are
allocated in sequential order.  The test now permits an ID allocator
to "skip" id blocks (which can happen on timeout in the current
ConsistentKey implementation) so long as the rest of the constraints
are respected.
Track thread exceptions in testMultiIDAcquisition

The method testMultiIDAcquisition in LockKeyColumnValueStoreTest
manually instantiated and started threads.  Assertion failures inside
those threads would appear on stderr, but they wouldn't be visible to
the JUnit runner and hence wouldn't directly fail the enclosing test.
Failures were detected indirectly by scrutinizing some state variables
after all the threads finished running.

This commit replaces manual thread instantiation with a standard
library ExecutorService.  The ES returns a Future for every Runnable
given to it.  The Future's get() method in turn throws an
ExecutionException containing any exception (such as an assertion
failure) generated by the runnable.  The test method rethrows these
exceptions when they occur, effectively making them visible to JUnit.
Removed forkMode=never on Persistit tests
Added Cassandra test profiles

Two default test-runner profiles trigger in titan-cassandra's pom.xml
when the -Dtest=... argument is absent on the command line.  A third
profile triggers when -Dtest=... is present.

The sole objective of this commit is to make maven stop running a
single test specified with the -Dtest=... command line option twice.
There might be a more elegant way to do it, but this works on my box.
WIP on locking refactoring

Do not use this commit.  It still has a lot of reimplementation,
refactoring, and test cleanup remaining to be done.  The new lock
class names are probably all going to change, too.
Refactoring ConsistentKeyLocker tests

I've reduced what was previously a couple dozen lines of boilerplate
EasyMock stubbing and setup into a set of five setup-helper methods
that model conceptual primitives in EasyMock, like
"recordSuccessfulLocalUnlock()", which internally records expectations
with EasyMock that the locker will make a timestamp call followed by a
call to the local lock mediator using that timestamp (order matters).

This is definitely cleaner from a design point of view.  However, I'm
not sure it's actually a practical improvement over copying
boilerplate.  It seems a lot harder to figure out what EasyMock
failures mean when the expectations involved in the failure are
scattered across a bunch of little helper methods.  Still
experimenting...
Locking refactoring WIP

In the middle of implementing-testing lock checking

This commit is part of a destructive refactoring effort.  Don't use
it.
Adding basic lock delete tests and impl

This is another refactoring commit.  The locking code is still
unstable and unusable in this commit.