Cleanup: Component Interface

Switched to having component be an interface, that way components can inherit from other things as well. I also simplified creating prefabs substantially.

Closes #72.