Committing artfunkel patch for scan codes
Merge remote-tracking branch 'origin/ScanCodeKeyboardBranch'
Extra maths features

- Added TranslationPart, ScalePart and RotationPart properties to
Matrix4
- Added Normalized() to Vector2/3/4, Quaternion and Matrix
A couple more maths functions
Changes suggested by Rob Rouhani

* Turned the new Matrix4 properties into methods
* Matrix4.Normalize() now behaves correctly. ExtractRotation() does its
own row normalisation.
Copied Matrix4 changes to other classes

* Removed  pointless LengthSquared check from ExtractRotation()
* Improved inline documentation
Merge pull request #9 from Artfunkel/master

More math features and other cleanup from Artfunkel.