Make BinaryPackedChanges.CHUNK_TYPE.value() abstract, each enum instance provides its own
Simplify BinaryPackedChanges usage of serialization factory
Remove parametrized type and state argument to BinaryPackedChanges.Callback. It was dead code.
just a revisit note for BinaryPackedObjects/Changes.CAP
Fix bug on sparse cloning missing feature-only metadata ids and other small improvements.

BinaryPackedChanges was exporting the RevFeatureType metadata only from
trees, but the object model allows for specific features inside a RevTree
not to share the tree node's metadata id.

Removed the CAP instance variable and changesSent method variable
since changesSent was not being incremented and hence it was dead code.

Made it so a byte[] does not need to be cloned for each object written.
Make clearer what BinaryPackedChanges.ingestOne does.

The treatment of the DIFF_ENTRY marker hijacked as METADATA_OBJECT_AND_DIFF_ENTRY
because METADATA_OBJECT_AND_DIFF_ENTRY have read the object that corresponds
to DIFF_ENTRY was tricky and confusing

Also avoid the ObjectDatabase.exists(oid) check before ObjectDatabase.put(RevObject)
because its overkill and unnecessary most of the time. In the event that an object
already exists the ObjectDatabase contract states its not replaced.
Use FormatCommon.readObjectId and avoid the code duplication
Make BinaryPackedChanges.ingest() do a single ObjectDatabase.putAll() instead of several put() calls.
remove dead code and count objects processed in BinaryPackedChanges
Use a Set instead of a List to speedup contains check on FilteredChangesResource
Don't try to move objects already present in the objects database.

AbstractMappedRemoteRepo.fetchSparseCommit relies on the filtering iterator
to ingest the incoming objects and save them to the objects database. So add
a flag to WriteTree not to call DeepMove as there's no need to move stuff
from the staging database to the objects database.
Merge pull request #740 from groldan/partial_clone_improvements

Performance improvements for partial clones over http remotes