Gyro temperature compensation

I'm ok merging or killing this work, but I'd like to decide either way.

This PR provides temperature compensation on the gyro channel for the full sensor suite and CC3D.  It also provides a GCS mechanism for calculating this.  In addition, there was some necessary refactoring of the GCS Attitude UI to consolidate the interface between CC3D and the other platforms.

This was tested on Freedom:
![Screen Shot 2013-02-18 at 1 26 52 AM](https://f.cloud.github.com/assets/618346/166410/bc1760a2-799e-11e2-9eed-d46b96f5df64.png)

And CC3D:
![Screen Shot 2013-02-18 at 1 36 13 AM](https://f.cloud.github.com/assets/618346/166411/c1c26b8c-799e-11e2-935a-fa7799ed24bc.png)

In both cases the calibration procedure went correctly (although I stopped it early on Freedom since the temperature stalled and I didn't want to overheat the Overo).  Both boards were flown and leveled nicely after temperature compensation.

Rerunning the leveling procedure reestimates the DC offset component of the bias only (but accounts for the temperature the leveling was run at).

As can be seen from the screenshots, the worst gyro error is about 2 degrees/s over 40 degrees.  Since this is basically a half revolution per minute on yaw it's enough that it might be worth compensation.  I can't honestly claim I perceive any improved flight characteristics though.