Use the new SPI transaction API

This new API makes sure that we always use our own SPI settings for
every transaction, even when other libraries also use the SPI bus with
different settings.

This also means that SPI initialization is now taken care of by this
library, instead of having callers do that.

Since we always use the transaction API, this means Arduino 1.5.8 or
above is now required to use this library.