Resurrection of ByteQ

Because of the success shown by PointerQ's Write/ReadSingleLazy(...)
methods, we have recreated ByteQ.

ByteQ allows the reading and writing of an arbitrary number of bytes
(provided they are smaller than the internal ring buffer). With optional
Lazy read/write methods.
Added lazy performance tests for each queue

This was achieved by simply copy and pasting the existing non-lazy tests
and using the appropriate lazy read and write methods. Although some
experimentation was performed it was not obvious how to generalise the
performance tests without impacting the basic performance of the tests
themselves.