Add support for compasses (absolute orientation)

This is my attempted fix for #18.

I implemented the suggestion in http://answers.ros.org/question/9446/how-do-i-compute-the-covariance-matrix-for-an-orientation-sensor/ to generate the quaternion orientation covariance from the euler angle covariances.

It seems to work reasonably well on my data set, until something terrible happens and it diverges.