Support Matrix3 in Quaternion.setFromRotationMatrix.

From the method name "setFromRotationMatrix", one would expect it's called with Matrix3 (since Quaternion is 3D rotation). But it only accept Matrix4, even worse, it silently produce wrong Quaternion when given Matrix3.

This commit adds support for Matrix3 along with Matrix4, based on instanceof branching. Performance hit would be minimum, and the commit makes Quaternion interface more intuitive.