Use ioctl for read

Regular reads from the spidev handle end up reading too many bytes due
to read-ahead buffering. Using the ioctl avoids this issue and allows
specifying per-transfer options if desired.