Change proc_mgmt/pending_clients.h to use reply queues instead of hashtables.
The process manager now enqueues a new client to send a reply to for every
request it sends to a spawnd. This happens for every spawnd instance (the
process manager has a "send" queue and a "receive" queue for every spawnd
instance it knows of -- the latter is now used for pending clients).
Whenever a new reply from spawnd is received, the process manager now pops the
next expected client to reply to from the receive queue, instead of retrieving
it from a hashtable. This approach is faster, as it does not rely on asking the
monitor to identify caps in order to retrieve pending clients from hashtables.
However, this approach assumes:
1) that spawnd is single-threaded & event-based;
2) that Flounder messages arrive in-order (Barrelfish seems to guarantee this).
Signed-off-by: Razvan Damachi <razvan.damachi@gmail.com>