Currently, the module registry is hardcoded. Modules should be registered in extension.json to allow for more flexibility.
Acceptance criteria:
- modules are registered via extension attribute
- modules are namespaced to the extension that registers them
- remove intermediate abstract class for module implementations
- modules are injected into the dashboard via a factory pattern rather than wiring pattern