Transaction buffers were deleted prematurely - under certain circumstances further transaction retrievals are needed during persistence. Added unit test which replicates #28. Fixes #28.
Implements Blueprints new transactional semantics in Titan.
Experimental Astyanax (Cassandra) backend

pom.xml changes:

* Updated guava to latest on maven central (12.0); Astyanax seems to
  require a newer version than the "r07" release we previously used

* Added Astyanax 1.0.3 dependency

diskstorage changes:

* Added diskstorage.astyanax with a storage manager, OKCVS, and a
  transaction object based on LockingTransaction.  These
  implementations are performance-naive, almost unconfigurable, and
  not well-tested.

* Added a builder static class to SimpleLockConfig

test changes:

* Added Astyanax lock and OKCVS test classes that require an
  already-running Cassandra instance listening on 127.0.0.1:9160
Astyanax GraphDB testing, ID allocation

* Removed some hacky configuration shortcuts in the first commit of
  Astyanax storage manager / OKCVS
* Registered the AstyanaxStorageManager with
  GraphDatabaseConfiguration under the name "astyanax"
* Added TitanGraphTest case for Astyanax which requires an
  already-running Cassandra instance listening on 127.0.0.1:9160
  (passes here)
* Added an ID allocator backed by Astyanax
* Suppressed unchecked and rawtypes warnings where I've used casts to
  prevent compilation-time errors on the Astyanax RowQuery type
Astyanax testing and implementation tweaks

* Added "Internal" flavors of the existing "ExternalAstyanax..." test
  classes.  These start a Cassandra instance in the JVM, like the
  "InternalCassandra..." test classes.  These pass on my machine, but
  only from maven.  Eclipse mysteriously stops printing any console
  output midway through test execution and later produces a bizarre
  Astyanax connection failure.  The InternalCassandra* tests do pass.
  It's just the InternalAstyanax* tests failing.  So, there may be
  some gross oversight in the way I'm setting the Astyanax environment
  up that Eclipse exposes.  I'm not sure.

* Removed the AstyanaxStorageManager#clearKeyspaces() hack that I
  wrote in earlier commits.  There's no longer any static concurrent
  hash map for sharing Astyanax contexts among storage managers, with
  the upshot that this method is unnecessary.
Implements Blueprints new transactional semantics in Titan.
Merge branch 'titan0.1' of github.com:thinkaurelius/titan into titan0.1
Implements Blueprints new transactional semantics in Titan.
Experimental Astyanax (Cassandra) backend

pom.xml changes:

* Updated guava to latest on maven central (12.0); Astyanax seems to
  require a newer version than the "r07" release we previously used

* Added Astyanax 1.0.3 dependency

diskstorage changes:

* Added diskstorage.astyanax with a storage manager, OKCVS, and a
  transaction object based on LockingTransaction.  These
  implementations are performance-naive, almost unconfigurable, and
  not well-tested.

* Added a builder static class to SimpleLockConfig

test changes:

* Added Astyanax lock and OKCVS test classes that require an
  already-running Cassandra instance listening on 127.0.0.1:9160
Astyanax GraphDB testing, ID allocation

* Removed some hacky configuration shortcuts in the first commit of
  Astyanax storage manager / OKCVS
* Registered the AstyanaxStorageManager with
  GraphDatabaseConfiguration under the name "astyanax"
* Added TitanGraphTest case for Astyanax which requires an
  already-running Cassandra instance listening on 127.0.0.1:9160
  (passes here)
* Added an ID allocator backed by Astyanax
* Suppressed unchecked and rawtypes warnings where I've used casts to
  prevent compilation-time errors on the Astyanax RowQuery type
Astyanax testing and implementation tweaks

* Added "Internal" flavors of the existing "ExternalAstyanax..." test
  classes.  These start a Cassandra instance in the JVM, like the
  "InternalCassandra..." test classes.  These pass on my machine, but
  only from maven.  Eclipse mysteriously stops printing any console
  output midway through test execution and later produces a bizarre
  Astyanax connection failure.  The InternalCassandra* tests do pass.
  It's just the InternalAstyanax* tests failing.  So, there may be
  some gross oversight in the way I'm setting the Astyanax environment
  up that Eclipse exposes.  I'm not sure.

* Removed the AstyanaxStorageManager#clearKeyspaces() hack that I
  wrote in earlier commits.  There's no longer any static concurrent
  hash map for sharing Astyanax contexts among storage managers, with
  the upshot that this method is unnecessary.
Adopting Blueprints 2.1 changes into Titan 0.1 SNAPSHOT master branch
Added clearStorage() method to StorageManager for clearing out the database and refactored test cases to use this method which makes the tests cleaner and simpler.
Added some configuration options to Astyanax. InternalCassandra tests not working.
Merge branch 'master' of github.com:thinkaurelius/titan into titan0.1
Merge branch 'titan0.1' of github.com:thinkaurelius/titan into titan0.1

Conflicts:
	src/main/java/com/thinkaurelius/titan/diskstorage/astyanax/AstyanaxStorageManager.java
	src/test/java/com/thinkaurelius/titan/StorageSetup.java
	src/test/java/com/thinkaurelius/titan/diskstorage/astyanax/ExternalAstyanaxKeyColumnValueTest.java
	src/test/java/com/thinkaurelius/titan/diskstorage/astyanax/ExternalAstyanaxLockKeyColumnValueStoreTest.java
	src/test/java/com/thinkaurelius/titan/diskstorage/astyanax/ExternalAstyanaxMultiWriteKeyColumnValueTest.java
	src/test/java/com/thinkaurelius/titan/diskstorage/astyanax/InternalAstyanaxKeyColumnValueTest.java
	src/test/java/com/thinkaurelius/titan/diskstorage/astyanax/InternalAstyanaxLockKeyColumnValueStoreTest.java
	src/test/java/com/thinkaurelius/titan/diskstorage/astyanax/InternalAstyanaxMultiWriteKeyColumnValueTest.java
	src/test/java/com/thinkaurelius/titan/graphdb/astyanax/ExternalAstyanaxGraphPerformanceTest.java
	src/test/java/com/thinkaurelius/titan/graphdb/astyanax/ExternalAstyanaxGraphTest.java
	src/test/java/com/thinkaurelius/titan/graphdb/astyanax/InternalAstyanaxGraphTest.java
New Astyanax config options

These Astyanax options have been added (but not thoroughly tested):

* keyspace replication factor
* read consistency level
* write consistency level
* per-operation retry policy
* cluster node discovery mode
* connection pooler type
* maximum open connections per host
ID allocation race fix for OCKVS stores

Formerly, the ID allocator would write a column to its backing store,
wait a little while, and then read the entire row containing the
column it just wrote.  The ID allocator then decided whether it
succeeded by checking whether the lexicographically last column on the
row was the one it just wrote.

This created a potential to enter the the following (racy) livelock:

A starts loop, reads partition row, gets latest counter C
A writes column claiming C+1
B reads partition row, gets latest counter C+1
B writes column claiming C+2
A starts verification, reads partition row, gets latest counter C+2 from B
A determines that it failed, since B's C+2 comes after its C+1
A starts loop, reads partition row, gets latest counter C+2 again
A writes column claiming C+3
B starts verification, reads partition row, gets latest counter C+3 from A
B determines that it failed, since A's C+3 comes after its C+2
B starts loop, reads partition row, gets latest counter C+3 again
B writes column claiming C+4
... and so on to failure by exceeding maximum retries

The ID allocator now avoids this by reading just a slice of the
partition row, instead of the whole partition row, during
verification; the slice contains only those columns that start with
the targeted counter value.  This prevents an ID allocator from seeing
claims for counter values higher than the one it is currently
attemting to grab.

Like the rest of the current ID allocation implementation, this is OK
for fixed-size and fixed-offset blocks (I think) but would be
incorrect for variable block sizes.  We don't implement variable block
sizes yet in the ID allocator, so this is not a material concern right
now.

This change is just a few lines, but the code is delicate.  All the
InternalCassandra* and InternalAstyanax* tests pass on my machine with
this change, but it is otherwise untested.
Changed method name from startThreadedTransaction to startTransaction
Astyanax connection pooling bugfix

Removed a method call that leaked an AstyanaxContext<Keyspace>, which
I think contains a connection pooler, on every call to
AstyanaxStorageManager#openDatabase()
Astyanax connection pool config refactoring

The size of the connection pool used for DDL operations ("cluster"
connections in Astyanax parlance) is now configurable separately from
the size of the connection pool used for ordinary data operations on
the AstyanaxStorageManager's keyspace.  The default size of this DDL
pool is 3.