|SOURCE|
[Common::GameEntity]
* This class serves as a base for all of the entites within the game to derive
  from
* The entity's type is set via the name it is given (this should really be in
  some kind of GameEntityType class or something)
* GetPosition and SetPosition modify and access the position, respectively
* Added GetOrientation and SetOrientation to manipulate and access the
  orientation (as a Quaternion), respectively
|SOURCE|
[Common::GameEntity]
* SetPosition and SetOrientation made virtual so that anything derived classes
  wish to translate or orientate along with the new position or orientation is
  possible
[Common::GameplayGameState]
* Made the Player instance a pointer
[Common::Player]
* Derived from GameEntity
* SetOrientation, Update, Render, and Initialise do nothing
* Made the copy constructor and assignment operator private
* Removed the m_Position member variable as it exists in the base class
|SOURCE|
[Common::GameplayGameState]
* The Player instance is deleted in the destructor
|SOURCE|
[Common::GameEntityManager]
* This class is responsible for managing the complete lifecycle of game
  entities (birth, life, and death)
* Added a basic class definition with a constructor and destructor
|SOURCE|
[Common::GameEntityManager]
* Made the copy constructor and assignment operator private
|SOURCE|
[Common::GameStateEvents::GameStateInputListener]
* HandleEvent dispatches multiple action events if a key is bound to more than
  one action
[Common::GameplayGameState]
* Enter registers the W, A, S, and D keys for player forward, left, backward,
  and right movement, while also allowing the same input to move the debug
  camera forward, left, backward, and right
|SOURCE|
[Common::GameStateEvents::GameStateInputListener]
* HandleEvent will call either InputBinder's GetActionFromKey or
  GetActionsFromKey, depending on more than one action ID was found
|SOURCE|
[Common::GameEntity::GameEntityType]
* This class is responsible for acting as a convenience for converting game
  entity names into their hashed 32-bit unsigned integer counterparts
* The default constructor will set the ID to zero and the Name to null
* The copy constructor and assignment operator copy the ID and allocate memory
  for the name before copying it
* GetID and GetName allow for other classes to access the ID and Name
  attributes
[Common::GameEntity::GameEntity]
* Replaced m_Type and m_pName with m_Type of GameEntityType
* Constructor no longer accepts a ZED_CHAR8 *, instead it has been replaced
  with GameEntityType
[Common::GameEntityManager]
* Added CreateEntity which will instantiate an entity with a unique ID of the
  type requested
[Common::Player]
* Added PlayerGameEntityType to allow for quick and simple acquisition of the
  event type for the player
[Common::GameplayGameState]
* Moved the call to set the renderer's clear colour from the Render member
  function to Enter
|SOURCE|
[Common::GameEntity::GameEntityType]
* Parameterised constructor takes a ZED_BOOL to determine if this entity is
  unique or if multiple instances may exist in the world
* Added an equality operator, which will return ZED_FALSE if either the name or
  the ID from the parameter do not match, otherwise ZED_TRUE is returned
* IsUnique returns whether multiple instances of this type are allowed
* The default constructor sets the unique attribute to ZED_FALSE

[Common::GameEntity]
* GetGameEntityType returns the GameEntityType into the parameter passed in
[Common::GameEntityManager]
* PurgeEntities will clean up the memory used by the entities in the entity
  array
* Added a unique ID which is assigned to new game objects
* CreateEntity takes the entity's uniqueness into account when creating a new
  instance, if an instance already exists and it is unique, then the new one is
  not added and ZED_FAIL is returned
[Common::GameplayGameState]
* Added a GameEntityManager to oversee the lifecycle of game entities
* Added a Player to the GameEntityManager instance
[Common::Player]
* PlayerGameEntityType initialised as being unique
|SOURCE|
[Common::GameEntity::GameEntityType]
* The copy constructor sets the unique attribute according to the original
  version passed in
* The assignment operator sets the unique attribute according to the
  GameEntityType passed in
|SOURCE|
[Common::GameEntity]
* Added GetID to return the unique ID for this game entity
[Common::GameEntityManager]
* Added GetEntityByID, which will return the object in the pointer passed in
[Common::GameplayGameState]
* Removed the Player class
* Replaced all Player functionality by getting the player from the
  GameStateManager (though, in a fixed way, which will be resolved at a later
  date)
|SOURCE|
[Common::GameEntity]
* Update is no longer a pure virtual member function, as it will be used for
  controlling the rate of rotation
* Added Move to add velocity to the current position
* Added Rotate to add to the orientation of the entity
[Common::GameStateManager]
* GetTotalElapsedTimeAsFloat returns the total time elapsed since beginning the
  game in seconds
* GetTotalElapsedTimeAsUInt64 returns the total time elapsed since beginning
  the game in microseconds
[Common::GameplayGameState]
* GetActiveActor returns the current actor under the influence of a human
  interface
|SOURCE|
[Common::GameEntity]
* Move defers the movement of the entity until Update is called
[Common::GameStateManager]
* GetTotalElapsedTimeAsFloat renamed GetTotalElapsedTimeAsFloat64
|SOURCE|
[Common::GameEntity]
* Update made pure virtual after considering that the rotation and velocity may
  need to be manipulated by base classes before being applied to the
  orientation and position
|SOURCE|
[Common::Player]
* Added a head offset to determine where the camera should be (this is just a
  float, to incorporate leaning, this should be a vector)
* Initialise sets the head offset to 170 units (1.7m)
[Common::GameEntityManager]
* In CreateEntity, after getting the entity type, the entity's Initialise
  member function is called, if it returns a failure state, then CreateEntity
  will stop and return a failure state