Implement a queue of actions for transmit/receive requests.

Allows clients to queue several requests without waiting for
their completion. Identical requests are discarded.
Work in progress, all previous functionality is covered.