Fix intermediate rotations in SO3 constructor

- This applies to the SO3 constructor that takes two vectors ‘a’ and ‘b’
  as arguments and computes the rotation matrix that brings vector ‘a’
  into the direction of vector ‘b’.
- Previously the intermediate rotation matrices used to compute the
  final result were not valid elements of SO3, since they had
  negative determinants.
- This fix does not alter the final result of the function, but it does
  ensure that the intermediate results are valid rotation matrices.