picked changes from spi_rewrite
* up to 30c07a6ba53e45453ed766c6ffefd6cd0d606493
spi mcu_periph: cosmetic changes, add/update copyright, doxygen for files
spi mcu_periph: better names for clock polarity and phase enum values
lpc21 spi mcu_periph: fix slave select for slave1
started fixing aspirin2 driver
change DSS name and type of I/O buffers to allow 16bit transactions
start rewrite of max1168 driver with new spi
add callbacks to spi driver and a missing status in max1168
more work on ms2100 for new spi (untested)
fix spi driver (register size)
fix max1168 driver (change status names)
fix ms2100 driver (callback declaration)
spi almost working but have a strange issue with uart driver
fix sending of I2C errors via telemetry
* we can't pass the address of a volatile var to the downlink macros:
  it will be cast to (const uint8_t*) and read byte by byte and hence not work properly if it is volatile
* you will also rightly get a warning "cast discards qualifiers from pointer target type"
* so we need to copy it to a non-volatile var before sending
still looking for the bug, but no luck :(
cleaning uart_arch
only disable i2c interrupts
add stop/resume functions to spi fifo
fix spi resume logic
make imu_b2 very clean and simple, but still crashing...