Add logging of heap/non heap memory usage to .geogit/log/memory.csv when metrics is enabled
Configure cobertura and surefire reports as part of the Maven site
Merge remote-tracking branch 'groldan/profiling'
Use separate RevObject caches for the staging and object databases, make it configurable

Fixes an issue with a RevObject cache being shared by both the object and staging
databases that may make it appear that some objects are present when they are not
in one or the other database, by keeping separate caches for both.
It also implements cache eviction when the object/staging database delete
methods are called, so that objects don't appear to exist after deleted.
Finally, caching can be disabled with the geogit config objectdb.cache.enabled = false
and geogit config stagingdb.cache.enabled = false config options.
The max size of both caches is set to 50k objects by default, and can be changed
through the [objectdb|stagingdb].cache.maxSize configuration option.
Merge remote-tracking branch 'groldan/caching'
Explicitly specify -XX:+UseCompressedOops for the CLI app.

As described in this oracle forum http://tinyurl.com/n5463p2
BDB JE requires to explicitly set this option for the cache
size computation to behave correctly, regardless of whether
the JVM enables the option automatically or not (as in newer
JVM versions).
Initial implementation of ObjectDatabase.getAll(Iterable<ObjectId>):Iterator<RevObject>
use ObjectDatabase.getAll in DeepMove
Make caching module intercept getAll(Interator, BulkOpListener) instead
fix formatting of TransactionStagingDatabase and HeapObjectDatabase
initial implementation of MongoObjectDatabase.getAll()
Use Ordering.natural() for ObjectId.NATURAL_ORDER instead of an unnecessary inner class
Javadocs for ObjectDatabase.getAll, putAll, and deleteAll methods
revert unintentional change in MongoObjectDatabase introduced when squashing commits for the pull request
ForwardingStagingDatabase base class

A base class for StagingDatabase implementations that's a composite of
two ObjectDatabase instances, one for the repository db and another one
for the staging area, that forwards calls to one or/and the other as appropriate.