AP_HAL: added a bulk transfer() method

very useful for dataflash
HAL_AVR: added bulk transfer() method

this is quite a lot faster than the byte at a time method
HAL_Empty: added bulk SPI transfer() method
HAL_SMACCM: added bulk SPI transfer() method
DataFlash: use bulk SPI transfer() method

this reduces the per-byte overhead of flash logging to about 3.9 usec
DataFlash: moved macros into common header
DataFlash: update test code for new macros
Plane: use an enum for flash log message types
Plane: start update logging for new API
Copter: use macros from common header
DataFlash: update SITL implementaion for new API
AP_Compass: added set_board_orientation() method
AP_InertialSensor: added set_board_orientation() method
AP_AHRS: added AHRS_ORIENTATION parameter
Rover: ensure ahrs.init() is called
Copter: ensure ahrs.init() is called
Plane: ensure ahrs.init() is called
AP_Math: support some more rotation combinations
AP_AHRS: document more rotation combinations
Copter: get rid of remaining Log.pde warnings