batt_smbus: correct args to I2C transfer

Also added read_reg method to reduce duplicate code
add retry to I2C init and register reads