Added an input listener for game state events
Added general-purpose events

|SOURCE|
[Common/Game/GaemStateInputListener]
* This converts key presses, mouse movements, and other events into events
  which are more appropriate for a game to handle
* Details of input devices are abstracted, keys or buttons are converted to IDs
  and floating-point values to interpret as the game requires
[Common/Game/GameStateManager]
* A GameStateInputListener is used to bind input commands with action IDs
* An InputBinder may be set, which is associated with the
  GameStateInputListener, this is used to associate action IDs with input
  controls
[Common/Utility/Events]
* Keyboard and Action event data and events are defined
* Keyboard events carry keyboard data, which consists of the key and it's state
  (up or down)
* Action events carry action IDs and a value ranging from -1.0f to 1.0f