Compass: set_motor_compensation takes instance as first parameter

Also get_motor_compensation uses primary compass
Compass: get_primary method made public
Compass_VRBrain: get_primary made public
Compass_PX4: get_primary made public
Copter: compass mot configures all compasses
Copter: CLI report_compass prints results for all compasses
Copter: add ekf check of compass

Checks the EKF's compass variance or the inertial navigations x and y
acceleration corrections
Copter: add EKFCHECK_COMPASS parameter
Copter: integrate EKF check

Check runs at 10hz
Log ekf check failures and ekd failsafes
AP_Notify: add EKF failure warning
Copter: fix to drift's yaw rate

The ACRO_P parameter needs to be multiplied by the roll and pitch
velocities to calculate the final yaw rate
autotest: support antenna trackers with on/off servos in SITL
AntennaTracker: support on/off servos

these servos are either moving at a constant rate, or off. To really
move them accurately we need to know about this and not use a PID.

This doesn't yet support ballerina, but could do with a bit more work.
Plane: fixed compass logging for COMPASS_PRIMARY != 0
AP_Terrain: initial structure
GCS_MAVLink: added terrain mavlink messages
Plane: added terrain object
AP_Terrain: implement height_amsl()
AP_Terrain: started on update() logic
GCS_MAVLink: keep a bitmap of what mavlink channels are active

- this will allow for looping over active channels in libraries
- expose active channel mask