PX4: enable ccache on windows build
AP_NavEKF: Reduce vulnerability to ground fixed magnetic interference

Re-initialisation of the magnetic field states and yaw angle is now only performed a maximum of two times after start-up.

Once when coming out of static modefor the first time (first arm event)
Again (for copter only) when the altitude gain above the arming altitude exceeds 1.5m

this prevents magnetic interference present at arming (eg arming on a metal roof)from corrupting the magnetic field states enough to cause bad heading errors and toilet bowling on copter
Copter: run_nav_updates at 100hz on pixhawk
Copter: run_nav_updates at 50hz on Pixhawk, 25hz on APM2

Based on work by Jon Challinger (see earlier commit)
AP_NavEKF: Added getAccelNED function
AP_AHRS: Add get_accel_ef_blended function
AP_AHRS_DCM: update _accel_ef_blended
AP_AHRS_NavEKF: overload get_accel_ef and get_accel_ef_blended functions
AC_PosControl: Use blended accelerometer measurement in altitude control
AP_AHRS_DCM: compile error fix for low speed CPUs

Also correct initialisatoin order to remove compiler warning
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