AP_AHRS : add method to report if EKF is waiting to start
AHRS: rename ekfNotStarted method to initialised

Also created default implementation in AP_AHRS class so AP_AHRS_DCM does
not need to implement it.
Copter: only report ahrs unhealthy after initialisation
Rover: only report ahrs unhealthy after initialisation
Plane: only report ahrs unhealthy after initialisation
TradHeli: remove overall throttle level from landing check
RangeFinder: TYPE param description to PX4-MaxbotixI2C

This hopefully reduces confusion for PX4/Pixhawk users with MaxBotix I2C
sonar
RangeFinder: TYPE param description to PX4-I2C
AP_NavEKF : Fix bug in reset of GPS glitch offset

The GPS glitch offset was being zeroed during position resets. This caused the filter to reject subsequent GPS measurements if the GPS error persisted long enough to invoke a timeout and a position reset.
Copter: use define for pre-arm compass offset check
Copter: Accel fail simulation - do not merge
AP_NavEKF : Add IMU hard fault detection and isolation logic

1) If the difference between the two IMU accel vectors exceeds a length of 10 m/s^2,then an immediate but reversible isolation of the sensor with the biggest difference is made. This prevents a large and sudden failure from adversely affecting the inertial solution before the innovation consistency check can be performed.
2) If the difference exceeds 5 m/s then the IMU blending weight calculated using innovation consistencies with GPS velocity is set to either 1 or 0 to perform a hard switch and temporarily isolate the faulty sensor.
3) If condition 2) persists, then the IMU will be declared as failed,  permanently isolated and neither its rate or accel data will be used until the filter is reset.
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
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
PX4: start px4flow driver
Copter: enable OPTFLOW - do not merge to master