Rename bundle types and use SWHIDs everywhere instead of raw sha1_git
The interfaces were a bit messy, as bundle types sometimes included the object type ('directory' was also a bundle type) and sometimes did not.
Instead, the bundle types now do not include the object type at all, which means users do no have to care about what cooker will cook their bundle, they just need to provide a bundle type.
Instead, the information about the object type is now carried along the object id, in a SWHID.
This allows simplifying interfaces and removing multiple convertions (especially between hex and bytes).
This is unfortunately a pretty large commit, as it is easier to change everything at once, than to try to make it incrementally and adding temporary convertions at some moving borders.
It also invalidates the existing cache entirely, as it used bundle types and object ids as keys, which are now changed.
Depends on !120 (closed).
Migrated from D6112 (view on Phabricator)