|BUILD CONFIGURATION|
[Windows::MinGW-w64]
* Defined ZED_WINDOWSYSTEM_WIN32 for the Windows build

|SOURCE|
[Windows::Renderer::WindowsRendererOGL2]
* Replaced both Create member functions with one that takes a CanvasDescription
  and a ZED Window
* Removed deprecated camera-related member functions
* SetRenderState renamed to RenderState
* Removed MessageBox which confirmed the OpenGL version supported by the
  graphics device
[Windows::Renderer::WindowsRendererOGL3]
* Reduced Create member function presence to one
* Removed deprecated camera-related member functions
* SetRenderState renamed to RenderState
[Windows::System::WindowsWindow]
* All references to ZED_SCREEN updated to SCREEN
* All references to ZED_WINDOWDATA updated to WINDOWDATA
* Stubbed-out all member functions
* Added the latest member functions from the Linux version
|SOURCE|
[Common::Arithmetic::Quaternion]
* Component constructor and Set member function expect w, x, y, z, instead of:
  x, y, z, w
* Default constructor sets the W member variable to one, creating a quaternion
  with no rotation
* Added multiply and assign-multiply operators
* Normalise added, will modify the existing quaternion
* Magnitude and MagnitudeSq added, will not modify the existing quaternion
* Conjugate will return the quaternion's conjugate, while not modifying the
  current quaternion

[Linux::Arithmetic::Quaternion]
* Magnitude returns the length of the quaternion
* MagnitudeSq returns the squared length of the quaternion
* Normalise modifys the quaternion, turning it into a normalised version of
  itself
* AsVector is stubbed out
* IsUnit is stubbed out
* Assignemnt operator is stubbed out
* Copy constructor is stubbed out
* Multiply will return the product of the current quaternion mulitplied by
  another quaternion without modifying the current one
* Assign-multiply will return the product of the current quaternion multiplied
  by another quaternion, storing the product in the current one
Merge branch 'arithmetic' of https://github.com/OpenGameDevelopers/ZED into utility_grid
Merge branch 'arithmetic' of https://github.com/OpenGameDevelopers/ZED into camera
Merge branch 'utility_grid' of https://github.com/OpenGameDevelopers/ZED into camera
|SOURCE|
[Common::Renderer::FreeCamera]
* Added Rotate which accepts a angle-axis pair
* Angle-axis Rotate not funcitoning correctly right now; have to look at it
  later
|BUILD CONFIGURATION|
[Common]
* Moved the camera-related classes to the Utility library, as they are not
  strictly required by the renderer
|SOURCE|
[Common::Utility::DollyCamera]
* Fixed typing error with namespace Utility
|SOURCE|
[Common::InputTypes]
* Added a ZED_KEYBOARDSTATE struct to be able to have a data type for the
  parameter for the SaveState function in Keyboard
[Common::Keyboard]
* Added two member functions for setting all keys up and all keys down
[Linux::Keyboard]
* State member function copies the contents of the m_Keys member variable to
  the pointer passed in (using ZED_KEYBOARDSTATE would be ideal for this)
[Linux::LinuxInputManager]
* When a keyboard's key is released, it is checked to ensure it is not still
  being held down from a previous key press before registring it as a release
|SOURCE|
* Moved the Event classes to the Utility library, as they are not critical to
  other parts of the ZED engine
[Common::Utility::Event]
* Argument order for the Event constuctor accepts the data before the dispatch
  time, as the data is more likely to be set than the time:
|SOURCE|
* Resolved all mis-matched ZED::System and ZED::Utility instances
|SOURCE|
[Common::EventRouter]
* Added the Event header, could not continue without the full definition of
  Event
* Removed useless comments in ValidateType
|SOURCE|
[Common::Utility::EventRouter]
* Added a name member variable to keep track of the event router in use
* Re-named all instances of ZED::System to ZED::Utility for the debug messages
* Added debug messages for assigning and unassigning the current event router
  as the global one
|SOURCE|
[Common::Utility::Event]
* Member variables changed to protected for the Event class so inherited
  classes can access these members
|SOURCE|
[Common::Utility::Event]
* Private members changed to protected so derived classes can acess them
[Common::Utility::EventRouter]
* Global EventRouter variable was not working before (it was definded as
  static, where it should have been extern) as when an EventRouter
  instance was instanciated, the pointer was not being modified
|SOURCE|
[Common::Utility::EventRouter]
* Added a flag [ZED_DEBUG_EVENTMESSAGES] to control display of debug messages
  to the terminal
Merge branch 'utility_eventsystem' of https://github.com/OpenGameDevelopers/ZED into utility_eventsystem
|SOURCE|
[Common::Renderer::GLShader]
* Added member functions to get the uniform name from a location and a location
  from a uniform name (GetConstantName, GetConstantIndex)
* A map for uniform names to locations added
[Linux::Renderer::GLShader]
* ExtractUniformNames will search through the source code passed in and look
  for variables declared with the uniform keyword, adding each instance found
  to a list stored internally.  This will later be used in the link stage to
  alias the string-based names with the integer-based locations
|SOURCE|
[Common::Renderer::GLShader]
* GetConstantName takes in a ZED_MEMSIZE parameter to specify the maximum size
  of the constant name buffer passed in, in addition to this, the constant name
  buffer is a pointer-to-a-pointer, to allow for modifying the pointer's
  contents
* Added BindUniformNamesToLocations which will go through the list of uniform
  names and attempt to bind them after the link stage
[Linux::Renderer::GLShader]
* Moved all program linking functionality to the Link member function
* Replaced duplicate program linking code in Activate and SetConstantTypes with
  Link
* GetConstantIndex will attempt to find the shader's constant index based on
  the name, returning ZED_OK if it was found, ZED_FAIL otherwise
* GetConstantName iterates over the mapping of shader constant names to indices
  and copies the name into the char pointer parameter if the name's length is
  shorter than that specified by the caller
* Link will attach the shaders in the program, link them, and retrieve the
  uniform names which will be aliased with their locations in the name to
  location map
|BUILD CONFIGURATION|
[Linux]
* Modified MakefileCommon to check for terminal colour support before
  formatting the output with the colour codes for warnings and errors