GCS_MAVLink: added setup_uart() method

this provides a common way of dealing with UART setup for a GCS
instance. It includes code to cope with SiK radios stuck in bootloader
mode.
Plane: use setup_uart()
Copter: use setup_uart()
Rover: use setup_uart()
AntennaTracker: use setup_uart()
Copter: send sonar distance to GCS via MAVLink

At the moment, the copter sonar set up does not have access to the
raw sonar readings so this code sets the voltage field to zero.
Copter: only send sonar distance to GCS when sonar enabled
AP_NavEKF: Increase gyro bias process noise

This is required to stop the bias estimate from becoming too static
towards the end of longer flights.
AP_NavEKF: Fix bug causing immediate clearing of diverged status on reset
AP_NavEKF: Scale divergence check with covariance

This provides consistent behaviour for a range of gyro bias process
noise settings and automatically adjusts sensitivity as filter learns bias
AP_InertialSensor: fixed example build
AP_GPS: fixed example build
AP_NavEKF: Prevent start-up transients re-tripping divergence test
AP_GPS: work around scheduling issue in example code
HAL_Linux: more generic fix for scheduler issues in example sketches

this ensures drivers can run
Copter: only acceept Guided waypoints in Guided mode

Fix #1068. When receiving guided waypoints do not change to GUIDED mode. This serves as a safety precaution for GCS, since they must switch to guided mode before sending the waypoints.
AP_NavEKF: Default parameter adjustments

Bring Plane glitch protection thresholds into alignment with copter and
rover
Slight increase in accelerometer bias process noise to prevent bias
estimate divergence into limits
effective increase in threshold on divergence test to allow increased
margin for bad GPS velocities