AP_Menu: dynamically allocate the menu buffers

this saves memory when the menus are not used, and allows for the
commandline and argument limits to be changed
AP_Menu: zero buffer contents on allocation
AP_Menu: added check_for_input() API

this allows for async use of the menus, so that a main loop can run
while allowing the user to enter menu commands
AP_Menu: fixed double display of prompt
DataFlash: make the SITL dataflash log 4x larger
Plane: log the AHRS error terms in dataflash

also log raw IMU at 10Hz with default config
Iris: Enable logging of all message types
Plane: allow changing of loiter direction while loitering

useful for causing path capture failures in the sim
HAL_AVR: changed to 16 byte bulk transfer on SPI0
AP_InertialSensor: try to lower SPI bus speed on errors
AP_InertialSensor: automatically lower bus speed on mpu6k bad reads
AP_Math: fixed zero function for integer vectors
AP_InertialSensor: detect bad MPU6000 SPI transactions and lower bus speed

this uses bad data or bad INT_STATUS values from the MPU6000 to detect
the sensor running too fast and lower bus speed
AP_Baro: start MS5611 at high speed
Rover: report INS health
Copter: report INS health
Plane: report INS and airspeed health
AP_Airspeed: added healthy() API
SITL: added SIM_ACCEL_FAIL option

used to test accelerometer failure in flight
AP_InertialSensor: added healthy check for PX4 and HIL

used to detect bad accels