Replace TestKit's queue with one that allows positioning of elements

The new BlockingQueue is both a FIFO & LIFO data structure.
Internally it wraps a BlockingCollection with a custom made LinkedList queue as
underlying storage. Elements are wrapped in an object that contains positioning
info, and the underlying LinkedList queue uses that info to add the item first
or last.