Optimize StringIDVertexCache

StringIDVertexCache's newTransaction() method performs a one-time
conversion from cached Vertex objects to their numerical IDs.
BatchGraph calls this method right after a graph commit call makes the
Vertex instances go stale.

To do the conversion, pre-patch newTransaction() code iterated over
every entry in the cache and used instanceof to find Vertex objects.
This patch introduces a set of entry keys updated since the last
newTransaction() call.  newTransaction() iterates over only the
updated entry set and then clears it.  Instead of BatchGraph w/ String
IDs doing an iteration on commit that is linear in the total number of
cached elements, the patched iteration is linear in the the elements
touched since the last transaction.
Refactored and optimized batch vertex caches impls

This commit pulls common batch-loading vertex cache code into
AbstractIDVertexCache and makes String and ObjectIDVertexCache extend
that abstract base class.  LongIDVertexCache uses Colt primitive
collections internally and is not amenable to sharing code with the
other Java collections-based implementations.

This commit also applies the optimization from
a0cf0f11d8c4eaf436493f742789142d741ac06e to Object and
LongIDVertexCache.  However, I've only tested it for
StringIDVertexCache.
Add explanatory messages for some failure conditions in the test suite.

This avoids having to look up the code to find out what's wrong.
Fix typo
Merge pull request #414 from mikesname/add_explanatory_messages_to_test_failures

Add explanatory messages to some failure conditions in the test suite.
Merge pull request #413 from dalaro/23

batch-loading vertex cache refactoring and optimizations
master merged @dalaro work on BatchGraph.
Disabled the unique-statements policy in GraphSail by default after studying its effect on write performance.  In most cases, users will probably choose better performance over safety w.r.t. duplicated statements.  For those applications at risk, the flag is there.
Aligned OrientDB impl to the new query refactoring
Merge branch 'master' of git://github.com/tinkerpop/blueprints
bumped down to OrientDB 1.4.1 so no SPAHSOT, and commneted out some tree classes that are not available in the repo. Note that I TODOd the updates so its easy to find.
Upgrated to OrientDB 1.5.0-SNAPSHOT
Upgraded to OrientDB 1.5.0
Use DefaultVertexQuery for RexsterGraph.

RexsterGraph no longer supports the Vertex Query API in a native way in relation to Rexster.
Merge remote-tracking branch 'origin/master'

Conflicts:
	CHANGELOG.textile
OrientDB: added check of right class before removal of edges and vertices
Fixed #415 ... used ? wildcard instead of T for Comparable for compatibility with said classes in issue tracker.
Add a BatchGraph constructor for just the graph and buffer size.
Support factory instantiation of graphs.
Blueprints-DexGraph now works with dexjava 4.8.2