Initial commit of GameObject.

Refactored the Component class to follow the composite pattern better.
So now the base entity class is the GameObject and behavior can be
composed by adding components to the game object. GameObjects can still
be children of other game objects.

Made sure all of the examples are working.