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 https://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()/setFromVector3.  Useful for Vector3/Euler interop, which is a fairly common use case.
- 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.

Shouldn't this be `setFromVector3`?