StorageBackend is an internal trait used to tie a specific Writer
implementation’s storage to the generic Writer. It would be
private, but Rust is deprecating ‘private trait in a public
interface’ support.
Public trait interface to a bitstream Writer: a Counter can be
used to count bits for cost analysis without actually storing
anything (using a new WriterCounter as a Writer), to record
tokens for later writing (using a new WriterRecorder as a
Writer) to write actual final bits out using a range encoder
(using a new WriterEncoder as a Writer). A WriterRecorder’s
contents can be replayed into a WriterEncoder.