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