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