Add development code for SD card library using the SPI protocol.

Features working so far include: card initialisation, commands, block reads, register reads (CID and CSD) and CRC7.

Requires an external SPI implementation with a number of basic functions, see extern definitions in sd_spi.h.