Construct a rotation from a matrix.

Add goodies to `R3x3Matrix` to support this: `Trace`, `operator[]`, product of an R3Element with an R3x3Matrix.
As discussed, we always use the naive algorithm.  If there is a Really Bad Conditioning presumably we'll see it in tests and we'll address it explicitly.