Migrate objstorage usage to CompositeObjId exclusively
Stop relying on the implicit assumption that object storages can be accessed with bare sha1 hashes.
Keep the sha1-exclude-file mechanism as the S3 inventory for which it was introduced still relies on sha1, at least for now.
To pave the way for future changes in swh.objstorage, also adapt tests to remove the assumption that InMemoryObjStorage state will remain keyed by sha1 (by using the _state_key function).
This changes the key in the redis failure reporter to reference all hashes instead of just sha1.
(cc. @douardda for this last change)