Module loading overhaul
Extend the PluginManager with a ModuleRegistry in order to be able to load multiple user modules. Introduce a mechanism to allow resource sharing between loaded modules. (Internal, but optional queueing system? Should support strong typed queues.)
We should also decouple the queues from the ConnectionManager, and introduce an abstract queueing system for Core components and user modules if required.