Added free function; SetGlobalEventRouter

|SOURCE|
[Common/Utility/EventRouter]
* Free function SetGlobalEventRouter aides in setting up the global event
  router to be used
[Common/Game/GameStateManager]
* PopState calls the topmost-state's Exit member function before popping the
  state off the stack
Added mouse and resolution change events to the game state input listener

|SOURCE|
[Common/Game/GameStateInputListener]
* Added resolution member variables
* Fixed a bug in the multiple actions to one key, which returned when the first
  key was handled, ignoring the rest
* Mouse co-ordinates are used to translate the X and Y into NDC space
* When receiving a resolution change event, the resolution member variables are
  updated
[Common/Game/GameStateManager]
* Update and Render return a status code
* Previously private scope member functions and variables are protected
* When a game state is entered, the mouse and resolution change events are
  registered
[Common/Utility/Events]
* Added mouse and resolution event types, events, and event data classes
Fixed the mouse Y co-ordinate controlling the X co-ordinate

|SOURCE|
[Common/Game/GameStateInputListener]
* When handling multiple cases for the mouse X co-ordinate, the Y co-ordinate
  was mistakenly used
Removed debug messages from GameStateinputListener

|SOURCE|
[Common/Game/GameStateInputListener]
* Removed debug messages used for verifying the functionality of the input
  listener
The GameState's EventRouter is checked before trying to add events

|SOURCE|
[Common/Game/GameState]
* Added a default constructor sets the event router and input binder to null
[Common/Game/GameStateManager]
* PushState checks if the topmost state's event router is not null before
  attempting to add the keyboard, mouse, and action event types