Add initial Quaternion implementation
Move matrix generation functions into math3d
Transforms now have a Rotation applied to them as well

Had to cave and set up a Transform constructor now that I have two
fields that don't have good Zero values. Oh well.
Add rotation helper methods to Quaternion and use them

Game now shows 3 of the boxes spinning on the three axes!
Add some documentation to math-related methods
Fix and clean upup Rotation matrix from Quaternion

Turns out the cprogramming.com article was WRONG! Some of the signs were
simply wrong so I pulled up OgreQuaternion and fixed my matrix. I found
this error when I added the multi-rotating cubes and some of them were
getting stretched and deformed as they rotated.