Fix matrix quaternion computations.

We've been calculating quaternions wrong since I first introduced matrix decomposition. Unfortunately, I think this is partly due to the fact that the spec decomposition algorithm is also wrong.

This change switches us to use the Blink algorithm instead. I'm not 100% happy with doing this, but I don't really know enough about quaternions to figure out what the spec text has gotten wrong.