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_InertialSensor: fixed example build
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 (Rover and Plane only as Copter does not
seem respond as well to this change)
effective increase in threshold on divergence test to allow increased
margin for bad GPS velocities
AP_NavEKF: Add protection for accel bias estimation errors

Don't do bias estimation if tilted by more than 60 degrees to prevent scale
factor errors affecting result unnecessarily.
Prevent Kalman gain from having the wrong sign due to numerical errors
associated with small process noise values.
Allow smaller Z accel bias process noise values to be set
Plane: prevent a bad glide slope when first entering auto

we need to ensure that prev_WP_loc is not used as it could be
completely different from current_loc. As a precuation, this also sets
up next_WP_loc so that when the set_next_WP() is first called that
prev_WP_loc is set to current_loc