Rover: implement SONAR_TURN_TIME

keep turning for at least that time
Rover: added new STEERING mode

this makes it easier to tune for auto mode
AVR HAL: RCJitterTest example
Used to test jitter on the PPM R/C input system.
Compass: basic compensation for motor interference
Copter: Compass log stores/retrieves motor offsets
Compass: add motor compensation to HIL library
Compass: enable motor compensation for 1280

Expand motor compenstion vector's range limit
Compass: remove virtual functions to save RAM
ArduPPM: Changed the behaviour of the PPM encoder: if a channel is lost retain its last value instead of a fail-safe value (except for Ch3/throttle)
ArduPPM: Set Ch1-4 to their fail-safe position and leave Ch5-8 at their last value
Update Tools/ArduPPM/Libraries/PPM_Encoder.h

- Small optimization
PPMEncoder - bug fix from previous commit
ArduPPM: Versioning cleanup, 2.3.16 should be the next official release
ArduPPM: version 2.3.16 for release
Copter: fix for acro throttle bug
Rover: reduce throttle more directly

this gives better throttle control in turns and waypoints
DataFlash: make it safe to do DataFlash logging from timers

this uses a non-blocking semaphore take if we are in a timer
process. Useful for logging failsafe events
Compass: add get_motor_compensation

Remove redundant set_motor_compensation call
Copter: add compassmot to cli

Allows user to setup compensation for motor's interference on the
compass
AP_HAL: added voltage_average() interface to AnalogIn

returns voltage in Volts, using averaged reading over samples.

Where possible this should be auto-scaled against a known reference
voltage