Fix Matrix::Transpose.

The current Transpose will break if `matrix` and `result` are the same value. This bug is apparent when working with the FarseerPhysicsXNA engine.

Pretty easy fix, just store the result elsewhere, then assign `result` at the end.