Initial commit of new graph database and common ancestor algorithm.
Resolved dependency issues which caused build errors in the geotools module.

Moved TestNeo4JGraphDatabase to the storage package.
Use method interceptors for adding nodes to the commit graph.
Added unit tests for FindCommonAncestor.
Checked for Commit Before Adding
added first version of usermanual
more docs
Fixed NPE and added functionality for ls-tree to support passing in single features

If a single feature is passed into ls-tree it will show that feature, if the -d (Only trees) option is passed in it will show all trees that contain that feature. Also supports the verbose option.
Fixed an issue which caused the commit graph to be incomplete when pulling.
Added directional hints on relational queries to reduce ambiguity.
extended docs
Changed Neo4J version to the latest stable build.
Allow empty merge commits to bring the target branch into the history.
Updated merge functional test with new output.
Merge remote-tracking branch 'jdgarrett/CommonAncestorFix' into merging
declare neo4j dependency in root pom and let src/core/pom.xml inherit the version from there
do not swallow exception in Neo4JGraphDatabase.put
small readability and performance improvement to Neo4JGraphDatabase
Some more simple code/style changes after merging branch jdgarrett/CommonAncestorFix

- Add missing class headers
- ObjectDatabasePutInterceptor intercepts putAll with a lighter weight approach
at figuring out which RevObjects in the argument iterator are RevCommits. It used
to defeat the purpose of the argument being an iterator by building an List out of
it, now uses a decorating iterator that adds only commits to the list to be added
to the graph db once the actual putAll call succeeded.
- Rename GraphDatabase.lowestCommonAncestor(...) as findLowestCommonAncestor(...)
Merge remote-tracking branch 'jdgarrett/EmptyMergeCommit' into merging