[i2c] replace convenience macros with functions

macros suck...

I2CTransmit(dev, trans, addr, len) -> i2c_transmit(&dev, &trans, addr, len)
I2CReceive(dev, trans, addr, len) -> i2c_receive(&dev, &trans, addr, len)
I2CTransceive(dev, trans, addr, len_w, len_r) -> i2c_transmit(&dev, &trans, addr, len_w, len_r)

In most cases these convenience functions should be used instead of i2c_submit since they explicitly set the transaction type again.
That makes them less error prone and easier to read.