Merge branch 'arithmetic' of https://github.com/OpenGameDevelopers/ZED into utility_grid
|SOURCE|
[Common::Utility::FreeCamera]
* Added UpdateOrbitLocation, which is intended to position the target location
  relative to the camera's position
|SOURCE|
[Linux::Arithmetic::Matrix3x3]
* Rotate [Quaternion] member function should generate a rotation matrix from a
  quaternion (pending testing)
|MERGE|
arithmetic_matrix into utility_camera
|SOURCE|
[Linux::Arithmetic::Matrix4x4]
* The constructor via Quaternion should correctly create a rotation matrix from
  the Quaternion passed in
|MERGE|
arithmetic_matrix into utility_camera
|SOURCE|
[Common::Utility::Camera]
* All accessor member functions prefixed with Get
* All manipulator member functions prefixed with Set
* Using Quaternions for handling rotation
* Added pure virtual member function Update
* Added RecalculateAces, which recalculates the local up, right, and heading
  vectors
* Added a few debug messsages to help with the new method of positioning and
  rotating the camera
[Common::Utility::FreeCamera]
* Rotate (angle + axis) creates an incremental rotation for a rotation
  Quaternion
* Move uses the local right, up, and direction vectors to calculate the new
  elocity for the position vector
* Update rotates the position by the rotation matrix derived from the right,
  up, and heading vectors, then calls SetView3D with the right, up, direction,
  and new position vectors
|MERGE|
utility_camera into utility_grid
|SOURCE|
[Common::Utility::Grid]
* Initialise handles creating grids on a YZ plane and offsets it on the X axis,
  accordingly
|MERGE|
utility_grid into unstable