document that this reads the remaining() bytes and has a side effect on
the position. if that is not the desired behavior then either modify
this class or invoke ByteBuffer.asReadOnlyBuffer() and pass the
result into the constructor instead., dsiutils now defines its own implementation of this but does not define
a ByteBufferOutputStream class. if it did, then we might just use its
implementations instead.