|SOURCE|
[Common::Events]
* SemanticInputEventData
  * The accessor and manipulator member functions are now explicitly defined as
    GetSemantic and SetSemantic
  * GetSemantic accepts a reference for each parameter, which was missing from
    the previous iteration which would allow for the value to be modified in
	the variable passed in
[Common::GameplayEvents]
* All non-core semantics are assigned values above 8096
[Common::MainMenuEvents]
* InputListener class changed to MainMenuInputListener, to avoid any possible
  conflicts
* MainMenuInputListener
  * Added SetMainMenuState which will assign the member variable pointer for a
    MainMenuState to use the correct MainMenuState
  * HandleInput only cares about one input semantic, which is the STATE_EXIT
    semantic, when this is encountered, the MainMenuState's Exit member
	function is called, immediately exiting the game (there should be some kind
	of confirm method after that to ensure the player meant to exit the game)
[Common::MainMenuState]
* Exit member function will set the flag for exiting the state which is checked
  on the next iteration of the update
* Added an InputBinder member variable to allow for binding input devices to
  input semantics
[Common::Semantics]
* Added common semantic values which will be shared across states
|SOURCE|
[Common::GameAttributes]
* Removed the Keyboard and Mouse attributes from GameAttributes, as the
  InputBinder handles all input going into the game states
[Common::GameplayEvents]
* All gameplay-specific semantics are now above 8096 and are all unique
* GameplayInputListener
  * Added a pointer to a GameplayState to GameplayInputListener as well as a
    manipulator member function (SetGameplayState) to update the member variable
    pointer to the GameplayState
  * HandleEvent checks for the STATE_EXIT semantic and will call the
    GameplayState member variable pointer's Exit function
[Common::GameplayState]
* Added an Exit member function which sets a flag to indicate that the game
  state should exit
* Update checks if the m_ExitState boolean value has been set, if so then the
  Exit member funciton taking a GameStateManager pointer is called to pop this
  state from the stack
[Common::IntroductionGameState]
* Member variable added to indicate that the introduction should be skipped
* Update checks if the m_SkipIntroduction member variable is set, if it is then
  the Exit member function taking a GameStateManager pointer is called to pop
  this state from the stack
[Common::MainMenuEvents]
* Added a semantic to deal with starting a game instance (this should be
  replaced by functionality to instead move up and down a list of menu entries
  which can be selected)
* MainMenuInputListener
  * HandleEvent uses the EXIT_STATE semantic to determine if the state should
    be exited, which further uses the semantic value to ensure that just
	receiving the event doesn't cause the state to be popped from the stack
  * HandleEvent uses the MAIN_MENU_START_GAME semantic to determine if the
    gameplay state should be pushed onto the stack, using the semantic value to
	ensure that the event is from a confirmation of an input press rather than
	just having received the input semantic ID
[Common::MainMenuState]
* Added StartGame member function which will set a flag to start the game
* Added a boolean member variable to indicate that the game should be started
* Update checks for the m_StartGame member variable, if it's set then a
  GameplayState instance is invoked
|SOURCE|
[common::IntroductionGameState]
* Added a member funciton which will set a flag to skip the introduction
  [SkipIntroduction]
* Added an InputBinder which just binds the escape key to the semantic to allow
  for skipping the introduction
* Added an IntroductionInputListener instance to handle the input semantic for
  skipping the introduction
[Common::IntroductionGameStateEvents.hpp]
* IntroductionInputListener [new class]
  * The constructor takes in a pointer to an instance of an
    IntroductionGameState
  * HandleEvent just listens for the input semantic to skip the introduction,
    which will call IntroductionGameState's SkipIntroduction member function