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).