Message hub now periodically yields to even processing
coro_t::spawn_... functions return a pointer to the allocated coro_t, so one can set priorities etc.
Make outstanding messages limit of the multiplexer configurable
Limit number of outstanding directory propagation processes.
Err nasty dead-lock...
Revert "Err nasty dead-lock..."

This reverts commit 72a346c198c4ee03e31a874311786fd69ca999be.
Revert "Limit number of outstanding directory propagation processes."

This reverts commit 6a578a78d0cf55d5a614e2818e8d0e0d28bee3a5.
Limit number of outstanding directory propagation processes.
Err nasty dead-lock...
Added a yield in a critical place.
Merge branch 'next' into daniel_realtime_message_hub
Merge branch 'next' into daniel_realtime_message_hub
Merge branch 'next' into daniel_realtime_message_hub
Remove the directory update semaphore. It just made stuff eat memory.
yield() used ordered wait. That's unnecessary and makes priorities not work properly.
Add a critical yield
Merge branch 'next' into daniel_realtime_message_hub
Adds a missing lock acquisition in message_hub
Fixes a problem with semaphores assuming that yield() preserves ordering.
Add a coro_t::yield_ordered() function and restore yielding in semaphore
Undid a change to the interface of coro_t::spawn_now_dangerously which wasn't really save.