Use a custom ringbuffer queue.

Substantial speed and memory improvements. Based on original code and suggestion
by Dariusz Górecki via https://github.com/eapache/channels/pull/3

cc @canni