#70 Added some boilerplate gui classes to start building simple gui

Added a base GUIElement class that has a virtual Draw and CheckMouse
methods
Added a widget class as a base for things like Button
Added a container class to hold widgets
Updated class description for PlaySoundEffectCommand
#70 #68 Modified Button to extend Widget.  Extended GUI

Modified existing Button class to extend from Widget
Made GUI not extend Container so it can be the central point of access
for a GUI
Added methods to draw and process events for the GUI
#70 #68 Worked on implementing mouse click events

Added mouse click command to take an action when the mouse is clicked
Modified gui classes so they return a bool when processed.  This is to
indicate if an element was clicked.
#70 #68 Finished implementing mouse click down event handling

Modified gui, input service, and commands to handle mouse click down
handling
Added a new kind of command that has an execute method that takes an xy
position to capture the state of the mouse at the time the command is
executed
Added a frame rate counter to Game

Fixes #73
Merge pull request #74 from n8ebel/dev-commands

Pull dev-commands into Dev now that the commands in mind are implemented
#70 Closes #68 Implemented MouseClickUp handling

Buttons now have a “pressed” state that indicates when the button is
being pressed down
InputService now handles mouse click up events
Can now add containers to a gui
Can add gui elements to a container
Renamed ClickGUICommand to ClickDownGUICommand
Update FPS counter to update 4 times a second and moved gui creation to construct of TestStae
#70 #69 Implemented basic InputBox

Implemented a basic input box
Draws a white rectangle in the input area
When the user clicks in the rectangle they can enter input which is
drawn within the rectangle
Major work towards GUI and input handling.  Incorporated lambda function support for input actions

Added InputBox class to take text input from the user
Changed InputService to not handle text input while gui has focus
Added lambda function member variables for mouse actions and button
actions
Helped unify gui interface

Worked towards #70

Closes #80
Closes #79
Closes #78
Closes #69
Removed unneeded commands that are easily replaced with lambda functions
Merge pull request #81 from n8ebel/dev-lambdas

Pulls dev-lambdas into dev-gui
Fixes #82

Pointer to texture was being checked to ensure it wasn’t null, but
wasn’t being initialized to null
#56 Updated file documentation header in gui classes
"Closes #84"
Added a hint option for InputBox  Closes #84
Implemented DrawText method in RenderService  Closes #67
Added Label gui element

Added a GetFont method of Font class so non-friend classes can get the
ttf_font from a Font object
Added a GetWindow method of RenderService
Fixed issue with Button never losing focus after click
Closes #60 Added Rectangle class to wrap SDL_Rect