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>
GCS_MAVLink: added SERIAL_CONTROL message definition

will be used for on-board radio and GPS firmware update and control
over USB
GCS_MAVLink: rebuild MAVLink headers
GCS_MAVLink: implement SERIAL_CONTROL MAVLink message
AP_GPS: added lock_port() interface

used by SERIAL_CONTROL message
Plane: added support for SERIAL_CONTROL message
Copter: added support for SERIAL_CONTROL message
Rover: added SERIAL_CONTROL support
AP_Notify: Support all GPS status flags, with status >= GPS_OK_FIX_3D notified as having a lock
AP_GPS: Support fix types of DGPS and RTK
SITL: Adding Swift Binary Protocol GPS type