Adjust the storage CBOR decoders to provide the input bytes
This is needed to be able to use annotations with the raw input bytes, without having to use an extra layer of CBOR-in-CBOR encoding (which is an undersirable change in the on-disk format).
This also makes it easier to have a single definition for the storage format, rather than different instantiations using different encoders and decoders that might not agree. This reduces opportunities for confusion.
The change to readIncrementalOffsets requires a test, since it is quite subtle and prone to off-by-one errors, but this patch does not include the tests.