add 'mapr-m7' profile to titan-hbase pom file, to support MapR Tables as Titan backend
add note about MapR Tables as Titan backend
better assurance of CF existence.  modifyTable is flaky, addColumn/deleteColumn is more reliable.
Update HBase shell scripts for 0.96

I initiall copied over 0.94's shell scripts to the 0.96 test
environment, but there have been a lot of changes between 0.94 ->
0.96, so I pulled the scripts in 0.96.1.1-hadoop1's tarball
distribution.  I patched bin/hbase's classpath cache logic to be
compatible with our maven build environment.  A bin/hbase patch is
included in this commit as a convenience.
Make LZ4 Cassandra's default compressor

Fixes #487

Also modified the compression settings test to use the compression
ConfigOption's default value instead of hardcoding Snappy as the
assumed default.
Refactor ID Partitioning configuration

Instead of a boolean, ID partitioning is now a three-valued enum:

* DEFAULT
* ENABLED
* DISABLED

ENABLED corresponds to the old value of true, and DISABLED corresponds
to the old value of false.  DEFAULT is the new behavior.  This enables
partitioning if the backend store reports isKeyOrdered() &&
isDistributed() via its StoreFeatures.  Otherwise partitioning is
disabled.

A warning is logged if the user sets DISABLED but the DEFAULT feature
criteria are true.
Break some &&'d Preconditions into multiple calls

Precondition boolean expressions with && conjunctions are ambiguous
without a detailed error message, since it's not possibe to tell which
clauses were false.  I separated a few instances of this around ID
partitioning handling into multiple Preconditions calls for the same
correctness guarantees but with less ambiguity and slightly increased
overhead cost.
Rewrite HBase's getLocalKeyPartition

This theoretically does the necessary length padding and endKey binary
arithmetic necessary to convert from HBase's startkey/endkey
convention to Titan ID partitioning conventions, but it is almost
totally untested.
Handle zero upper partition bounds

VertexIDAssigner reads the first four bytes of key ranges provided by
getLocalKeyPartition as ints.  It then unsigned right shifts the ints
by two bits each to make them effectively 30 bits wide.  It does some
arithmetic on the ints to preserve inclusive-start and exclusive-end
semantics and then passes them to PartitionIDRange's constructor.

Here's the computation done on each range-end int:

  partition[1] = (partition[1] >>> 2) - 1;

If the original partition[1] value is 0, this results in
Integer.MIN_VALUE.  Because the partition width is 30 bits, this value
is invalid (too wide since the MSB is set).  This value leads to a
precondition failure shortly after in PartitionIDRange's constructor.

I think the intent is to follow the subtraction by zeroing the two
most significant bits, simulating 30-bit wide unsigned integer
arithmetic and allowing underflow.  So this commit adds a bitmask
after subtraction like so:

  partition[1] = (partition[1] >>> 2) - 1;
  partition[1] &= 0x3FFFFFFF;
Fix bogus HBaseGraphMetrics test failure

When I enabled ID partitioning by default on HBase, it switched from
initializing a single ID pool to 10, the default value of
SimpleBulkPlacementStrategy.CONCURRENT_PARTITIONS.  This caused
HBaseGraphMetricsTest#testKCVSAccess1 to fail when counting the number
of getSlice calls made by a graphdb instance, since initializing those
extra pools requires more getSlices.
Adding a debug log message in VertexIDAssigner
Make titan-all depend on titan-hbase-096
Make titan-cassandra build a tests jar by default
Merging MapR build option support

Source branch is 'master' of github.com:boorad/titan

The target branch, titan05, diverged since @boorad's work with the
introduction of separate modules for HBase 0.94 and 0.96 support and
so there were some conflicts.  I moved the mapr profile into
titan-hbase/titan-hbase-094/pom.xml and adjusted it a bit.  It's
activated by passing "-Dhadoop.profile=mapr-1.0" on the mvn command
line.  The profile's pom property mapr.zookeeper.version has been
renamed to zookeeper.version, and I tweaked the mvn_opts.txt file to
pass through command-line overrides to this variable so that it will
be preserved during generation of target/cached_classpath.txt.

I get a ClassNotFound with the default MapR ZK version 3.3.6.
However, with 3.4.5, the tests pass; here's the mvn command I ran from
titan-hbase/titan-hbase-094:

mvn install -Dhadoop.profile=mapr-1.0 -Dzookeeper.version=3.4.5

HBase logs these VersionInfo data:

2014-02-14 20:19:48,787 INFO org.apache.hadoop.hbase.util.VersionInfo: HBase 0.94.12-mapr-1310
2014-02-14 20:19:48,787 INFO org.apache.hadoop.hbase.util.VersionInfo: Subversion git://tron/root/mapr-dev/ecosystem/private-hbase-0.94.12 -r 0c86e1459ffa9b6954726824152203117388aad4
2014-02-14 20:19:48,787 INFO org.apache.hadoop.hbase.util.VersionInfo: Compiled by root on Wed Oct 30 19:37:51 PDT 2013

This differs from the usual HBase VersionInfo and suggests that MapR
is actually running, but I'm not a MapR expert and can't vouch for the
completeness of the MapR instance inside the test harness.

Conflicts:
	titan-hbase/pom.xml
	titan-hbase/src/main/java/com/thinkaurelius/titan/diskstorage/hbase/HBaseStoreManager.java
Disable specious LockKCVSTest ERROR log messages