Perform I2C combined transactions when possible

Perform I2C combined transactions using a repeated start whenever
possible.
Uses the workaround technique specified in the BCM2835 peripherals
datasheet.
Will affect both I2C and SMBus transactions to allow atomic write/read
operations.