WIP: Component view framework

Note that `@EagerSingleton` should be used sparingly, for situations where nothing else depends on the component or you need it activated early on. In this situation the store will be activated by the dependency in ViewModuleBooter, so eager is not necessary here.