Better i2c & GPIO interfaces

Improves the i2c implementation and provides more granular interfaces. 

- Exposes the `i2cConfig` function to public use
- Add `pinMode` function to allow more granular setting for GPIO interfaces.
- Fixes bug in `i2cWrite` to allow for passing bytes correctly.