AP_AHRS: fixed calls to DCM in parent class

use_compass() and reset() are common to AP_AHRS_DCM and
AP_AHRS_NavEKF. As AP_AHRS_NavEKF is a child of AP_AHRS_DCM, when we
call use_compass() from within AP_AHRS_DCM we actually end up calling
AP_AHRS_NavEKF::use_compass().

This has the effect of disabling the compass in DCM when EKF is active
and EKF has decided not to use the compass. That means that the DCM
yaw (and in fact the whole attitude) can get badly off while EKF is
enabled, making DCM an ineffective fallback if EKF fails.

The fix is to call the specific class versions of use_compass() and
reset()
AP_AHRS: restore DCM attitude before update()

The DCM drift correction code uses the current attitude to calculate
error values to update its gyro drift correction. If we were using EKF
then without this patch the DCM code running as an alternative AHRS
source would be using the EKF attitude for calculating the error
value, leading to very bad gyro drift estimation
AP_AHRS: use a common function for updating the CD values

this ensures the wrapping of yaw is consistent between the 3 use cases
Copter: add DCM_CHECK_THRESH parameter
Copter: add DCM check of yaw error

Triggers an "ekf" failsafe if the DCM yaw error is > 60deg
Copter: support logging while disarmed
Copter: remove extra in_mavlink_delay from should_log function

Also return false when logging disabled
Copter: add NearlyAll-AC315 LOG_BITMASK description
AP_Compass: added set_offsets() interface

this will be used by Replay to prevent the need for saving parameters
Replay: fixed loading of users parameters and parameter override

use compass.set_offsets() to avoid trying to write to storage
Parachute: set servo or relay to off position on every update

This resolves the issue of the parachute servo's position not being
initialised to the off position due to an ordering problem of the
auxiliary servos being initialised after the parachute object.
Copter: log DCM reported roll-pitch and yaw error
AP_Motors: reduce slow-start increment for fast CPUs
Copter: check target of set-mode request from GCS

Issue discovered and fix contributed by Deadolous
AP_NavEKF: Track baro alt when pre-armed

This will help prevent spurious alt disparity warning messages for copter
AC_PosControl: bug fix dt calculation

fixes issue in which now could be earlier than _last_update_xy_ms
leading to a large dt value and a sudden lean on takeoff
AHRS_DCM: sanity check AHRS_RP_P and AHRS_YAW_P
AC_WPNav: bug fix sanity check of set_speed_xy

This corrects a bug that allowed the waypoint speed to be set to zero
Copter: print frame type in log headers
Copter: landing detector checks baro climb rate

Barometer climb rate must be -150cm/s ~ +150cm/s
This threshold is generous because we already use the inertial
navigation climb rate so this is just to catch cases where inertial nav
is very incorrect in it's climbrate estimates