The new API allows creation of queues with multiple pipes. Each pipe
is independently lockable and waitable. A queue with one pipe is same
as the old SilcThreadQueue.
The queue now also supports FIFO order when popping data from the pipes.
By default the order is LIFO.