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.