Implement error handling for both situations: * ACK errors in I2C high-level implementation in `I2C.h` * add timeout in while loop in `SoftI2C.h` implementation; add error return. Probably one error state is sufficient?