RC_Channel: added static functions to simplify operations on all channels

this avoids vehicle code having to loop over all channels for common
operations
Plane: use new channel output API
Rover: use new channel output API
Copter: enable passthrough auxillary channels
Plane: fixed some warnings
Plane: build fix
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