Add --count option to cli's diff command
Huge performance improvement to compute the number of changes with path filtering.

This patch introduces two new methods to the DiffTreeVisitor.Consumer interface:
endTree(Node left, Node right):void and
endBucket(int bucketIndex, int bucketDepth, Bucket left, Bucket right)
that are called after the tree(...):boolean and bucket(...):bookean respectively,
regardless of their return value.

This allows consumers to keep track of more info like what the current tree
path is at any given event.

With that in mind, DiffCountConsumer is updated to use a filtering decorator
when path filters are given, and hence get rid of the separate code path it
was using for that case, that forced a full traversal of a DiffTreeIterator.

This results in an impressive performance improvement as now DiffCountConsumer
can skip whole trees and buckets and address only the ones that can possibly
match one of the path filters.

In a repo of ~2M osm features with ~1M changes between the diff'ed commits,
and filtering with 10 path filters, we're talking of an avg execution time
of ~5 milliseconds as opposed to ~3000 milliseconds.
Update diff man page with the new --count option
Merge pull request #747 from groldan/diffcount_filtered_improvements

Performance improvements for DiffCount/diff --count
Remove unnecesary check for null id after 16cb52117 is merged
Trees reulting from OSM mapping now use exact same CRS as canonical OSM trees
Merge pull request #748 from volaya/osm_crs

Trees resulting from OSM mapping now use exact same CRS as canonical OSM trees
Add path filtering to DiffBounds and CLI's diff --bounds option.
Make JEGraphDatabase synchronized to avoid concurrency issues.
Avoid feature type from using DefaultGeographicCRS.WGS84,

It causes inconsistent behaviour when storing in the database and then taking back the CRS from it
Merge branch 'wgs84' of github.com:volaya/GeoGit into volaya-wgs84
Replace patch at 1d1a096422 by a more succint one.
Fix bug in DiffPathFilter that was preventing some filters from being evaluated.

A wrong short circuit return statement in DiffPathFilter was preventing filters from being evaluated.
Add support for CRS transformations to DiffBounds

DiffBounds (the operation used by the CLI's diff --bounds option) can now
reproject to a given coordinate reference system. At least otherwise
specified, the returned bounds are in EPSG:4326.
Preserve osm changeset close time as commit's timestamp
Upgrade maven surefire plugin and parallel test execution settings.

Parallel test execution settings were using the deprecated 'forkMode'. Replaced
by forkCount/reuseForks as recommended by the plugin's documentation.
Add missing 'final' modifier to RevTree.EMPTY and RevTree.EMPTY_TREE_ID.
Reorganize CLI functional tests into general, plumbing, porcelain, and remote.

Helps reduce the build time by allowing maven to run the tests
for the different packages in parallel.