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.