AP_GPS: auto-switch primary GPS based on status and number of satellites
AP_GPS: save 800 bytes of code space on APM2

we can assume a single GPS
GCS_MAVLink: moved comms functions to not be inline

saves a bit of flash space
AP_NavEKF : clean up convoluted logic used in sensor health checks

This doesn't change the behavior, but does make the code easier to
understand
AP_NavEKF : Relax aliasing check limits
This reduces the chance of noisy data inhibiting GPS glitch protection
AP_NavEKF : Limit rate of Z accel bias adaptation

Aliasing can causes the bias estimate to fluctuate very rapidly as it tries
to keep up, which degrades the benefit of switching between
accelerometers to avoid aliasing.

This patch give a much more stable bias estimate during aliasing, and
allows the bias to adapt at a maximum rate of 1.0 m/s2 in 50 seconds
AP_NavEKF : Do not reset on GPS velocity timeout if good position data
AP_NavEKF : Improved GPS position glitch handling

When using GPS after previously rejecting it, the GPS position will
always be offset if outside the specified glitch radius. This was the
original intent of the design and makes handling of glitches smoother.

It has been tested on replay using glitchy flight data
AP_NavEKF: used state structure in more places

makes the code a bit easier to read

Pair-Programmed-With: Paul Riseborough <p_riseborough@live.com.au>
Copter: fixed load average for different loop rates

Pair-Programmed-With: Paul Riseborough <p_riseborough@live.com.au>