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.
missing _i2c