Combined components.js and component.js 

What do you think of this direction? I like it because it combines all the component logic into one file and takes the `require` out of the component.addChild function, which is what was creating the circular dependency.

Also I changed it so components get registered in the file where they're created. I like that because it's more like `exports`, instead of having to look in another file for which components can be reference by name (i.e. we could have components that are only used inside other components and don't get registered for use elsewhere).

We could also combine the register and extend into one line, if that's preferable.
```
Button = Component.registerComponent('Button', Component.extend({});
```

I guess we could also shorten it to `Component.register()` if that's still clear enough.

(I have not run tests on this)

Will this window reference work like this or do we need to handle it differently?