WIP: Component view framework

FYI, the reason why eager should be used sparingly is because it can cause havoc with injected tests because the component will still attempt to initialize even if nothing in the test uses it.