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
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
Build: enable px4flow driver on Pixhawk
OptFlow: rename and restructure OpticalFlow class

AP_OpticalFlow.h becomes simply a file that includes all other optical
flow header files.
OpticalFlow class simplified to only return surface quality, raw output
and velocity vector.
OptFlow: reorganise ADNS3080 to simplified interface
OptFlow: add PX4Flow support
Copter: optflow parameters moved to optflow class
Copter: simpler optflow logging

Removed of_loiter control output from message
add TimeMS to OF dataflash log msg
Copter: instantiate optflow on Pixhawk

Run sensor reads from scheduler
Copter: integrate optflow_enable param move to optflow class
Copter: Of_Loiter uses sensor velocity instead of integrated position
OptFlow: add ground_distance_m
Copter: log ground distance from optflow sensor
OptFlowPX4: use ORB to pull data from sensor

This change is required because PX4Firmware has changed the method used
to pull data from the sensor.
Copter: pilot override used immediately in OF_Loiter

Replace some hard coded numbers with definitions
Copter: enable optflow by default for Pixhawk
OptFlowPX4: fix compile error for APM