Init

This is now working as a basic component injection framework. There is
still a lot todo and a lot of components to build, but this is the
initial check in so I wouldn't expect it to be done yet.