Merge pull request #557 from groldan/issue_554

Fix off by #processors - 1 missing features when importing from a FeatureSource
Use ExecutorService.shutDown() instead of shutDownNow() which may cause problems to close the bdb database
added StagingDatabase.getAllPresentStagingOnly for the cases where it is known that only the staging db needs to be queried.
Use StagingDatabase.getAllStagingOnly in DeepMove if appropriate
Rename ObjectDatabase.getAll to getAllPresent to better align the method's name with its contract.
Change return type of ResolveGeogitDir from URL to Optional<URL>. It's bad practice for commands to return null.
Simplify getAllPresent() and deleteAll() for JEObjectDatabase. The extra complexity provided no real performance gain.
Do not print the percentage character if the progress is over it
add logger entries for org.geogit.osm and org.geotools
slight improvements to DeepMove
Replaced osm point cache and RevTreeBuilder2's NodeIndex with mapped file implementations.

The current osm point cache performance declined severely as the number of coordinates
increse, since the temporary bdb je database competes with the staging and object db's
for heap memory on the shared bdbje cache.

It is now replaced by MappedPointCache which is a PointCache that uses a memory mapped
file to store the coordinates in sorted chunks, and hence doing most of the work in
off-heap memory, several times faster than the bdb je implementation.

The current RevTreeBuilder2 NodeIndex lead to high memory usage and could also be improved.
It is now replaced by MappedNodeIndex which is a NodeIndex backed by a memory mapped file
producing very little memory overhead compared to FileNodeIndex and approx. twice as fast.

Other implementations have been attempted, specially based on the mapdb libaray (see mapdb.org)
and are left for reference and future testing, but for now the two selected ones are the ones
mentioned above.