[I2C]: Move SoftwareReset from DetachCause to Error and adapt all I2c drivers.
[I2C]: remove startBlocking() from I2cMasters.
[I2C]: Rewrite SoftwareI2c for correct error handling 
as required by driver operations like ping.
[I2C]: Adapt all drivers for SoftwareI2c to prevent deadlock.
Coroutines: Rename CO_END_CALL -> CO_END_RETURN_CALL.
Coroutines: Add CO_CALL_BLOCKING for busy waiting calls.
Adapt I2C drivers.