In single threaded contexts, the Router now is treated as yet another actor on the queue. In multithreaded contexts, it gets its own dedicated thread.
Simplify the implementation of the multithreaded runtime and router.
Basic framework for a multithreaded runtime has been put in place. Needs plenty of fixes to keep the logic straightforward and performant.