Added 'insert' command to insert arbitrary features in a simplified way
Refactored the LowestCommonAncestor algorithm to the op.
Initial implementation of BDBJE graph database.
Other graph backends now run FindCommonAncestor tests.
Refactored the sparse path check out of the graph database.
Some JEGraphDatabase improvements.

- Use a single transaction in put(ObjectId commitId, ImmutableList<ObjectId> parentIds)
  to insert update the node and the parent nodes.
- Use a more compact serialization format than default java serialization, based on BDBJE TupleBinding
- Remove some dead code
- Use its own environment, and the raw byte[] object id as key instead of a string. It uses a
  separate database even if using the same environment than JEObjectDatabase so no need for the
  extra overhead.
Fixed an issue which caused clone to fail when tags were present.
Added javadocs to explain private methods of FindCommonAncestor.
Implemented minor performance gains.
Merge pull request #699 from jdgarrett/lca-refactor

Refactor out graph algorithms and build Berkeley Graph Database
Merge pull request #670 from volaya/insert

Add 'insert' command to insert arbitrary features in a simplified way
Use of a static DataStoreFactory in tests can cause pseudo random failures on parallel builds
make functional tests run with the same guice modules than the actual CLI