#3 Added the drawable component stub files
#3 Implemented basic drawable component and sprite

Added cSprite class to wrap SDL_Surface
Moved create_user_entity from a static method of n8 to cGame_Manager
Implemented cDrawable_Component class
Added the drawable component to the "user_entity" returned from
cGame_Manager.create_user_entity
#2 Implemented the basics of the render system

Added a cRender_System class
Added to cGame_Manager.create_system(string ID) so that it can create a
cRender_System instance
Modified cSystem.update() so it prints the id of the registered
entities.
Removed the 'NAME' requirement for cSystem so that all registered
entites are accepted
Changed how n8::nextID works.  Instead of being a public static, it was
changed to be a private static data member with a static public
get_next_id() method.  When invoked, the method increments the next id
by 1 so it is always unique.
added extensive comments
Commented cDrawable_Component.cpp
Implemented a screen component

Moved SDL initialization into cGame_Manager.initializeSDL
Added a create_screen_entity method to cGame_Manager.
create_screen_entity and create_user_entity both register the created
entity immediately now
Removed screen initialization from main.cpp to cGame_Manager
Modified drawing code in main.cpp to use the created screen entity
Added a const int SCREEN = -1 to act as the entity id for the screen
enitity
Added cGame_Manager.initializeGameLoop
Moved the SDL specific game loop code to cGame_Manager
Added cGame_Manager.handle_input
Added a DEBUG_MODE constant to toggle debug messages
Modified game loop in main.cpp to use the game manager
Moved screen creation to right after game initialization
a
# 2 Implemented basic resource manager for images

Implemented the basics of the resource manager
Manager will load images from an input file containing image file paths
Those images get coverted into optimized SDL_Surface* then stored as a
sprite in the resource manager sprite map named 'loaded_images'
#2 Implemented the very basic render method of the render system
Removed the use of the constants file

Removed constant values from the constatns file
Moved them to n8.h
Updated references to other files so their access point to other header
files is n8.h
#4 #2 Implemented sprite movement on screen with keyboard arrow input

Added an update_position method to cPosition_component so the movement
system can update entity locations

Moved input handling into the game manager.  An array of boolean values
determines if a key is currently pressed.  Events and key presses are
handled in cGame_Manager.handle_input.  When a certain key is pressed,
the appropriate movement system call is made

Movement system has methods for specifically altering an entity
position such as key_up or key_down
The movement system will also operate on objects with contstant
velocities that need updating
Added extra methods to position and drawable component

The previous way of getting information from a component was too verbose
It required getting the component, getting an object from the
component, then getting data
Now, the extra call from the component is wrapped by the component so
one less call is made.  The coponent call will internally call the
object's getter method and return the value.

get_component(DRAWABLE)->get_sprite()->get_image()   becomes
get_component(DRAWABLE)->get_image()
Added implementations for arrow key movements

Also added additonal debug message flags to control messages for update
methods
#11 Implemented the camera, and sprite world bounding

Added a controllable componenet to determine which entites can be
controlled
Added height and width to the position component
Added a camera system.  The camera system only cares about 2 entities,
the screen and the entity to follow.  These both have unqique
registration methods
Added methods to the movement system to check if a move will take an
entity outside the bounds of the current world
#15 Added a size component to store heigh and width of an entity
#16 Added a register_screen method to the render system
#13 Updated the cRender_System.render() method to use the camera's position when drawing entities
#13 Modified the update function of the camera system so the folloed entity moves in middle of screen

Added a set_world_bounds method to the game manager to set the world
bounds of camera and render system