Copter: re-order init_sonar

No functional change.
ArduPilot: update README.md
ArduPilot: fixup README format
AP_NavEKF : Improved Magnetometer Error Handling

(Plane Only) If the yaw and GPS heading disagree by more than 45 degrees on takeoff, then the magnetometer is declared as failed. The heading is then reset based on the difference between GPS ground track and stgate velocity vector.
Magnetometer fusion uses corrected data and bias states are initialised to zero. This allows the compass to be switched in flight.
For persistent compass errors that trigger a timeout, the compass is not permanently failed, however for non-forward fly vehicles the compass weighting is reduced.
AP_NavEKF: Clean up flight detector logic
Copter: Change flow sensor read sample rate to 10Hz
Copter : Remove ADNS3080 flow sensor support
Copter : Update logging for new PX4Flow sensor interface
Copter : Remove legacy optical flow control mode

This mode is not compatible with the new PX4Flow interface
Copter : Remove legacy optical flow control mode

This mode is not compatible with the new PX4Flow interface
Copter : Update optical flow test for new PX4Flow interface
AP_OpticalFlow : Remove support for ADNS3080 sensor

It is not compatible with the new interface and data fusion requirements
AP_OpticalFlow : Update PX4Flow interface

Interface now uses the integral of flow and body rates
AP_NavEKF : Fix bug in reset of position and velocity states

If the inertial solution velocity or position needs to be reset to the GPS, the stored state history for the corresponding states should also be reset.
Otherwise the next GPS measurement will be compared to an invalid previous state and will be rejected.
The position state should be reset to a GPS position corrected for velocity and measurement latency. This will make a noticeable difference for high speed flight vehicles, eg 11m at 50m/s
AP_NavEKF : Reduce ripple in estimates that can cause copter motor 'pulsing'

This patch reduces the level of 5Hz and 10Hz 'pulsing' heard in motors due to GPS and altimeter fusion which cause a small 5Hz and 10Hz ripple on the output under some conditions. Attitude, velocity and position state corrections from GPS, altimeter and magnetometer measurements are applied incrementally in the interval from receiving the measurement to the predicted time of receipt of the next measurement. Averaging of attitude state corrections is not performed during periods of rapid rotation.

Time stamps are now explicitly initialised to the current IMU time to avoid unwanted activation of timeout logic on filter start and the various calls to the hal.scheduler->millis() object have been consolidated.

Unused variables have been removed
PX4: start px4flow driver
Copter: enable OPTFLOW - do not merge to master
Copter : EKF optical flow fusion support preliminary changes

Assumes optflow sensor has been modified to push data at a low rate, eg 10Hz
and velocity data is angular velocity, not linear velocity
AP_AHRS : EKF optical flow fusion support preliminary changes
DataFlash : EKF optical flow fusion support preliminary changes