Component Dependency Refactor

- call function to register a dependency instead of defining in config
- allows consistent usage in cases where dependencies are chain-loaded
  (e.g. load a dependency in the callback of another)
Pass block through context
Handle live/unlive actions
TODOs
Announcer/listener model for components