This change adds a common I2C class, gathering various I2C functions into a single point of responsibility. It's necessary for correctly managing the I2C bus pins and state across multiple devices.
Co-authored-by: ZodiusInfuser <christopher.parrott2@gmail.com>