HMC5983 I2C driver

Added HMC5983 I2C driver. The driver is almost identical to the HMC5883 driver, but it has to set a bit to enable the temperature compensation and there are a few other options. Also updated the SPI driver (which doesn't seem to be used by any target) to support additional orientations.

I added this to support an external HMC5983 compass on the Brain, could be used in any target that supports and external I2C compass.
Can you make this consistent with the non-I2C driver. You dropped the 'PIOS_HMC5983_HAS_GPIOS' in the struct.