Added a FIFO queue with O(1) removal

I needed the slightly special implementation of a FIFO queue
to simplify the way channels would work (which would need to store
lists of listeners, with the ability to remove them quickly).

The queue is very stripped down, so it does not implement an
interface. Handle it! It won't be an issue...