This implements:
- spibus acquire/release semantics, so SPI bus transactions can be atomic
- sleep/wakeup in the bus acquire/release methods, so controllers don't have to implement their own serialisation (eg what bcm2835_spi does)
- convert all the spi devices I can find over to the new semantics
- convert some of the (simple!) spi controllers over to the new semantics
However, it doesn't yet implement all controllers, as it's not entirely
clear how to hold CS asserted for the whole transaction set.
It's quite possible that a follow up commit will be to let the controller
specify whether CS can be held across transactions or not, so potential
consumers (eg mmcspi) can decide whether the work or not.