Major refactor
  - Controller is now a model object to simplify api
  - Shared components added.
  - Page level controllers are now components. Modified router to treat them as such.
  - Made controller more robust
  - Improved api for component definitions. Need to make the component compiler now.
  - Models rendered inside each helpers now have @index in their context.