fixes #20 fixes #27 Modified the rendering pipeline

Sprites now draw themselves and have a method to draw only a portion of
themselves
When registering an entity, the game manager will check the type and if
the entity is a background_type or a screen_type it registers them
differently so they aren't operated on like a normal drawable
Added methods to Game_Manager to define the color of the screen
background
Added a list of base layer drawable entities to the render system.
These are drawn before other entities to serve as the base layer for
the drawing.  If a background entity is not large enough to fill the
whole world area is is automatically tiled to fill the screen as needed
Added a Color_Component to store color information