Various Math improvements from Clara.io

The changes PR'ed here to the Three.JS math library are additions we made based on our extensive usage in Clara.io.

Summary:
- make/extractBasis on Matrix4.  Details: https://en.wikipedia.org/wiki/Basis_(linear_algebra)
- Matrix4.makeShear.  Details: https://en.wikipedia.org/wiki/Shear_matrix
- Euler.toVector3().  Useful addition for us.
- Quaternion.add/sub/multiplyScalar.  Useful if you want to do math with quaternions.
- Matrix4 type checking on functions that could possibly take Matrix3.  This actually caught real errors in our Clara.io code base, so we are contributing these checks back.