Adding ExtQ

This queue does not actually manage, or even reference, the
ringbuffer. It simply manages the safe access to indices into an
external ringbuffer. The reason that this is attractive is that it
allows us to use ringbuffers of concrete types, instead of interface{}
or unsafe.Pointer.