Started work on breaking code into reusable libraries

Added a sprite manager and input handler
These both take over some of the responsibilities of the game manager
Game_Manager now extends a generic Object class.  This lets the input
handler accept key action functions of different Object subclasses if
down the road the input handler is reused
Create Log, Numerical_Utilities, Point2D, Point3D classes
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
Implemented world entity binding

Modified the movement system and the movement component to allow the
developer to specify whether an entity is bound to the confines of the
world.  If set to true, when an entity reaches the edge of the world
the sill stop moving.  If set to false, they will reach the edge of the
world, continue past it, and be marked for removal by the game system.
Updated asset filepaths
Merge branch 'dev-Milestone3'
Test commit
Test commit 2
test
Created State and StateManager class templates
Finished initial prototype of new “State based” engine
Second prototype for new game engine design

Updated new design
States now define how input behavior will be defined
There is a singleton game manager and a singleton input manager
The game loop occurs in the game manager and makes update calls to the
current state via the state manager
Further work on 2nd prototype

Changed State_Manager to be a Singleton
Implemented a changeState(int id) method
Working towards more comprehensive input handling
Currently, multiple input events aren’t being handled
Implemented cleaner interface for handling the full event buffer from a State subclass
Refactored class and file names
Work to simplify API and to create a unified interface
Implemented basic event queue system
Updated project file directory
Fixed references to files
Split system values and game specific values into different files
Removed values from n8 and made it the central point of access to the engine
Updated input handling so a single Input_Manager.process_inputs() method is called from the state_manager during each cycle
Implemented on_pause() and on_resume() methods to states
Also modified State_Manager to call these methods when states are pushed and popped from the state stack