Rework SPI API to accept buffers to read/write via
Closes #39