I2C: Improve I2C driver

Now includes read/write bit funcitons as well as read/write reg8
functions (since 8 bit registers are very common)
I2C: Add block register read
Add invensense IMU driver
Plumb stm32 IMU driver
I2C: Increase I2C Interrupt priority

If the i2c driver gets interrupted in the middle of a reception, it can
cause it to enter into a bad state.

TODO: Add provision to the i2c state machine to generate STOP signal if
this condition is detected