INS: Add flag to override the bias

The EKF seems to be easy to destabilize while initializing.  This might
be related to being unobservable and the bias drifting around so this
makes it possible to force the EKF bias to zero.
INS: Add UAVO to inspect state and covariance diagonal

This probably shouldn't stay in forever but being able to directly
inspect the INS state and at least the diagonal of the variance
will prove useful.

Conflicts:
	flight/targets/Freedom/UAVObjects.inc
INS: Remove updates of the gyro bias

Trying to get rid of the oscillations that often occur on warmup.
However forcing the bias term to zero and not propagating the
uncertainty of it doesn't seem to help.
INS: Remove deprecated code
INS: Improve initialization and initial variance
GCS Calibration: Fix calculation of pitch

Previous code would sometimes evalulate to zero when that was
incorrect.  Using a more simple equation that seems to work
reliably.
Attitude: Make sure complimentary filter initializes to correct state
INS: Simplify initialization and remove redundant code

Previously there were two branches of code for indoor and outdoor mode
in the INS that were very similar and then some complicated logic to
try and run the prediction forward without correction for a while
when starting the INS.  This seemed to result in more poor initialization.

Also reduced the (hardcoded) indoor variance to 0.1.
INS: Make sure to only consume updates once

Previously objects were loaded unnecessarily and used repeatedly because
the updated flag is static and wasn't cleared.
Rename RevoSetting to StateEstimation to reflect its purpose

Also added a separate field for the attitude filter versus the
navigation filter.  This lays the groundwork for running the
complimentary filter for attitude and the INS for navigation.

Conflicts:
	flight/targets/FlyingF3/UAVObjects.inc
	flight/targets/FlyingF4/UAVObjects.inc
	flight/targets/Freedom/UAVObjects.inc
	flight/targets/Quanton/UAVObjects.inc
	flight/targets/RevoMini/UAVObjects.inc
	flight/targets/Revolution/UAVObjects.inc
	ground/gcs/src/plugins/uavobjects/uavobjects.pro
INS & CF: Separate the code for updating the filter and using it

This lays the foundation for running the complimentary filter and
the INSGPS at the same time.  This will also allow using the INSGPS
for the navigation estimate and the CF for the attitude.

Conflicts:
	flight/Modules/Attitude/revolution/attitude.c
INSGPS: Use const when appropriate
INS Simulation: Updates to allow setting separate pos and vel variance
INS: Select the navigation and attitude filter independently
INS: Do not use outdoor mode while using navigation

Do not default to outdoor mode when using navigation information.
This is superficially a sensible thing to do, but means we cannot
use the INS in indoor mode and take hte position estimate.  This
is useful as a replacement for the altitude hold filter.
INS & CF: More fixes for running both at once
INS & CF: More fixes for dual mode
PID: When Ki is zero force integrator to zero

Some representations of integral make the ILimit proportional to
Ki to avoid this problem.  However as the code was written setting
Ki to zero could leave previous windup in place.
PID: Create pid method with antiwindup protection

This algorithm looks at how much the output is saturated by and
uses that amount to reduce the integral.  The constant for this
rate is hardcoded to 10x the Ki term.  Too high and it will trigger
false resets of the integrator.  Too low and it will not be
sufficient to reduce the integrator faster than the error is
causing it to integrate.

Work on #340
VtolFollower: Use pid_apply_antiwindup

The navigation has much slower dynamics, and thus is more inclined
to having issues with integral windup and oscillations.  This uses
the antiwindup pid controller for both the velocity and position
control loops.

Fixes #340