Make DiffTree use the new DiffTreeVisitor intead of DiffTreeWalk.

DiffTreeVisitor is much simpler than DiffTreeWalk/TreeDiffEntryIterator.
DiffTree now uses a producer/consumer approach to adapt the visitor's
'push' calls to an Iterator<DiffEntry>, as opposed to TreeDiffEntryIterator's
'pull' approach.

Also, this commit fixes some "works by accident" issues where behavior
complied with a bug in DiffTreeWalk that didn't report changed trees
even if setReportTrees(true) was set.
Add bounds and changeType filtering to DiffTree
GeoGigDataStore support for building FeatureSources out of diffs
synchronization between difftree's producer/consumer to finish prod. thread if the iterator was not fully consumed
add missing (c) header
Fix GeoGigDataStore.getDiffFeatureSource(...) count and bounds computation
Wait for server to acknowledge sent objects before updating remote refs
Merge pull request #793 from boundlessgeo/multiple-push

Wait for server to acknowledge sent objects before updating remote refs