Moved *Buffer/Commit* pattern into commonQ

Now both PointerQ and ByteQ delegate reserving slices of the ringbuffer
to the commonQ.writeBuffer(...) commonQ.readBuffer(...) methods. The
commonQ directly provides the public CommitRead/Lazy() and
CommitWrite/Lazy() methods.

Previously this code was duplicated across both PointerQ and ByteQ. The
ByteChunkQ has it's own unique implementations of the slice reserving
methods, although it uses the commonQ.Commit*/Lazy() methods.