C++-ifying the MPSC queue.

Putting allocator and other details in the queue where they should be.