Fix BlameReport.setFirstVersion and use the correct argument order for assertEquals() in BlameOpTest.testBlameChangedByTwoCommits
cache only bucket trees
Set default max heap size to 2GB
refactoring internal to org.geogit.api.Node to use less memory
Make the BDB JE object database create a default je.properties configuration file
Several performance improvements targetted at the import large dataset use case

- New ObjectId.createNoClone(byte[]):ObjectId factory method used whenever the raw
hash byte array is obtained somehow else and its safe not to clone it.

- WorkingTree.insert(Iterator<Feature>, ...) calls in ObjectDatabase.putAll with a
transforming iterator that also has the side effect of adding the node to the
RevTreeBuilder whenever a feature is consumed.

- RevFeature and RevFeatureType maintain the original FeatureType attribute order
Use an intermediate byte buffer in JEObjectDatabase.putAll()

This intermediate byte buffer reduces memory consumption by avoiding
to clone multiple small buffers. and batch inserts as many blobs
as fit in the buffer in ObjectId order to ease the job of the database
when dealing with the btree.
set RevTreeBuilder default normalization threshold to 1M.
fixed issue in FeatureDiff class. Changes in feature types where not reported depending on how the existing fields were modified
Added ref counting to neo4j database services.

Also added javadocs for missing functions.
Fixes #291
Fixed issue with mixed feature types. For features not using the default FT, nodes had the default metadataId.
Updated the web-api to support long transactions and added the Merge web api command.

Changed all web-api commands to support running off of a transaction.
Added Merge which supports checking for conflicts, a dry-run option which sends back what will change in the merge and merge itself with the no-commit option.
Fixed a bug in ReportMergeScenarioOp where removed features weren't being added to the unconflicted list.
The previously stated bug fix caused a test to fail which revealed a problem with the RevTreeImpl class where if the tree was empty when it was read in it would be created with an empty bucket list instead of Optional.absent() which was causing it to list a feature as removed twice when DiffTree was called.
Made a fix to the writeConflicts function.
Working on refactoring Merge in the web-api.

Added conflicts to the response of status through the web-api.
Added checkout to the web-api.
Updated Merge command to return both the new commit it made and the report for the changes made in that merge.
Updated merge and log web-api commands.

Added firstParentOnly option to log.
Removed hack for merge so that it will work when conflicts are store on transactions.
Fixed SquashOpTest to use the new MergeReport class that merge returns.
Added SRS to the responses that include geometry, namely the diff with geometry and merge responses.
minor improvement to conflicts command and updated doc about merge conflicts
Merge pull request #323 from volaya/conflicts

minor improvement to conflicts command and updated doc about merge confl...
Revert "Use an intermediate byte buffer in JEObjectDatabase.putAll()"

This reverts commit 0ecf797a298553677cde5c64cb63a154ed2af65d.
Reason being that the buffer doesn't expand properly upon features that result
in a large encoded representation and the buffer can be overrun.