Removed inverted and changed to subrange call which inverts bytes if desired
Replaced Kryo with custom serializer and added multiple special purpose serializers for common types. Added compressed string data type. Fixes #490.
Tests not yet refactored.
Introduced Decimal and Precision data types for sort order preserving decimal numbers with a fixed number of digits. Removed FullDouble and FullFloat since those are now replaced with just Double and Float.
Changed test serializer test case
Refactored cache in KCVS, implemented new typecache
Refactored cache in KCVS, implemented new typecache, instrumented both with Metrics, updated test cases accordingly, and a lot of other minor refactoring changes.
Minor optimization by checking whether a store multi query is actually needed.
Committing changes to array serializes that weren't picked up by a previous commit for some reason
Refactoring tx configs and store features

This commit only refactors titan-core and titan-test; the storage
backend modules are broken in this commit
Updating backend modules for core/test refactoring

This is more StoreFeatures and transaction configuration refactoring
Merge branch 'serializer' into titan05

Conflicts:
	titan-core/src/main/java/com/thinkaurelius/titan/diskstorage/locking/consistentkey/ConsistentKeyLocker.java
	titan-test/src/test/java/com/thinkaurelius/titan/diskstorage/locking/ConsistentKeyLockerTest.java
Experimental enum support in titan Configuration
BDB JE config options for isolation, lockmode
Give ES local-mode configuration precedence

Fixes #552
Test ES local-mode config precedence

Added test for #552 and associated fix by
e4a976ec2de08357567165a986c93edd36c5600e
Backport CASSANDRA-6190

Fixes #548

Reference: https://issues.apache.org/jira/browse/CASSANDRA-6190
Groundwork for configuring timestamp resolution

Turn TimestampUtility into a general interface with a
nanosecond-resolutiond and microsecond-resolution implementation.
This change removes a few points where TimeUnit.NANOSECONDS or a
something-to-nanoseconds conversion divisor was hardcoded.  The
titan-test and titan-cassandra suites pass.  The other test suites may
be broken.  Also, I'm not sure these changes are complete -- I have
yet to turn on microsecond timestamps and see what breaks.

This relates to #472 and #483 but does not close either.
Preload ConfigOptions at most once

This prevents redundant, costly reflections traversals of the
classpath from slowing down TitanFactory.open(...) calls that follow
the first one after VM start.
Add a logging statement in TimestampProvider
Timestamp-related refactoring in core

* Combined NanoTime and MicroTime classes into a single enum called
  Timestamps.  The TimestampProvider interface is unchanged.

* Added a TIMESTAMP_PROVIDER ConfigOption to
  GraphDatabaseConfiguration and made StandardTransactionBuilder apply
  its value.  The default is micros.

* Made ConsistentKeyIDManager use millisecond timestamps in its mutate
  calls.  Before this commit, it seemed to write columns containing
  millisecond time but issue those writes to Cassandra/HBase using
  nanotime at the protocol level.  Now it should be milliseconds
  throughout.

* Made ConsistentKeyIDManager instantiate a new storage transaction
  configuration for each mutate call.

* Cleaned up a couple cases of commented code held over from previous
  refactoring commits.