- Add missing semaphore take on bus - Initialize device on init function rather than constructor: the constructor may run before I2CDeviceManager is initialized since our AP_Notify objects are static so it can't be used.