Added a "light" component and modified component management

A component type id field was added to components so that systems may
identify the generic component and cast as needed to a specific
component. This is needed for the graphics system to distiguish between
renderables and the new light component, also any future component
types.

The light component does nothing at the moment, just exists.