SPI: Remove all _impl.hpp files and move the code into .cpp files.
This is required at least for the `state` static member variable.
SPI: Reorder methods for clarity.
SPI: Implement blocking calls using CO_CALL_BLOCKING macro.
SPI: Rename `writeRead()` to `transfer()` in all implementations.
SPI: Rename all `writeReadBlocking()` to `transferBlocking()`.