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
Added readme
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.
Merge pull request #1 from elisee/fix-client-rectangle-setter

Fix ClientRectangle setter on Windows (WinGL) & Linux (X11)
Readme cleanup, add some resources and links
Added Matrix clearing methods

- Added ClearTranslation(), ClearScale(), ClearRotation() and
ClearProjection()
- Added ExtractProjection() to Matrix4
- Fixed ExtractScale() giving incorrect results if a Matrix4 contained
projection data
- Added setters to Matrix4d's Column properties
Merge pull request #10 from Artfunkel/master

Matrix ExtractScale() bug fix and "Clear" methods
Change WinRawMouse.ProcessMouseEvents to call code directly instead of using lambdas

Change WinRawMouse.ProcessMouseEvents to call code directly instead of using lambdas.  The lambdas caused memory allocations and were unneeded
Update whitespace issues to conform to the rest of the document
Merge pull request #12 from zastrowm/patch-1

Remove lambdas from WinRawMouse.ProcessMouseEvents
Fix for github issue 13, terrible crash on Keyboard GetState
Added Quaternion.FromMatrix
Added a Diagonal and Trace property to all matrices
Added missing doc comments in the matrix classes to reduce the number of compiler warnings