Use a CidScheme to specify everything that remains constant about content IDs
that share the scheme.
An important thing about CidScheme that can't be specified in this interface
is the implementation of CidScheme#equals. equals should be true only if
identical bytes will be given identical content ids under this scheme.
Data structures (such as SetDatum and MapDatum) are constructed by
appending content ids without delimiters. These binary data structures
are parsed by counting bytes, which is why key length is a necessary
attribute of the content id scheme.
the number of bytes necessary to encode a content id in this scheme