Updated HIL message specifications to better meet demand, added helper functions for quaternions

After implementing state and sensor level HIL with the common message set, it became obvious that the original message design was too limited. These main issues have been addressed:

1) The sensor HIL message contained lat/lon/alt, but this works only in the very specific case of on-autopilot generated GPS measurements. Since the purpose of this effort is however a generic HIL interface, setting GPS velocities and covariances is very important. Since the rates are very different (gyro vs gps), pushing this artificially into the same message is also not a good design choice. Therefore HIL sensors has been cleared of any GPS parts, and HIL_GPS has been introduced.

2) The state HIL message used roll / pitch / yaw, for a generic interface the attached singularities are however problematic. This has been replaced by a quaternion, and conversion functions are now provided as helper file to ease adoption.

3) The sim state message had a number of important fields missing. For the sake of backwards-compatibility roll/pitch/yaw have been retained there as well, but except for human-readable output adopters should use the attitude quaternion in that message.

This patch set also adds functions to convert between Euler, Quaternions and rotation matrices (DCM), following NASA rotation standard and originally written (as attributed) by James Goppert.

I believe that APM could use the default message set in this current form, if not we should see if minor edits can make it work.