fixed issue in ResolveFeatureType operation when repo is empty
Modified import operations to avoid changes in feature types and prevent creating trees with mixed feature types

Importing different feature types is still allowed, but it has to be explicitly indicated
Decode names of tables to import before importing

This prevents encoded characters in tree paths, mostly blank spaces represented as %20
added man page for osm-history command
updated osm create-changeset manpage
added workshop with osm workflow
fixed unmap operation to detect changes if a new tag is added
Merge pull request #733 from volaya/osm_doc_update

Osm doc update
Merge pull request #734 from volaya/unmap

fixed unmap operation to detect changes if a new tag is added
Merge pull request #721 from volaya/decode_import_url

Decode names of tables before importing, GeoTools gives URL encoded type names
Revert "Decode names of tables to import before importing"

This reverts commit 39671f549da2131d2e4385828fd79830cb00b0d2.
because it breaks the build
Decode names of tables before importing
Merge pull request #736 from volaya/decode_import_url

Decode names of tables before importing
fixed issue in FeatureDiff when computing diffs including feature type changes
remove touchedId lists in Local/HttpRemoteRepo.

these in-memory lists are there only to clean up after a possible exception,
but they can become huge and consume too much heap. Getting rid of this clean
up eliminates the overhead. If an error occurred that leaves the repository
with too much garbage we could still make a clean clone though.
simplify BinaryPackedObjects by getting the object writer on demand
Improve BinaryPackedObjects to use one single ObjectDatabase.putAll call

BinaryPackedObjects.ingest() used onec ODB.exists() and ODB.put() call per
object received. Swiched to using one single call to ODB.putAll() with
the object stream transformed to an Iterator<RevObject> and using a
BulkOpListener to notify the Callback instead dramatically improves
the performance of fetch over http remotes.

BinaryPackedObjects.Callback was also made to return void and removed
its parametrized status argument since it was dead code.
Change BinaryPackedObject.Callback.callback(RevObject) to callback(Supplier<RevObject>)

Some callbacks don't need/use the argument object, so its
better to deferr its acquisition to when its really needed.
Merge remote-tracking branch 'origin/pr/703'

Conflicts:
	src/geotools/src/test/java/org/geogit/geotools/plumbing/ImportOpTest.java
Deferr connecting to the server until needed to avoid ReadTimeoutExceptions on the server.

HttpRemoteRepo.sendPackedObjects is connecting to the remote too early. The call
to BinaryPackedObjects.write can take a while before using the provided output stream
which can cause read timeouts in the server. Using a Supplier<OutputStream> instead
helps by deferring the connection until its actually needed, avoiding the timeout in the server.