feat(core.component-manager) Added a component manager.
refactor(*) Refactored much of everything to use the component manager.