STM32: Make I2cMaster::start() atomic.
Fix assertBaudrateInTolerance<>() visibility issue.
Update Protoface example with debug transaction and master.
This is tested in hardware and worked.
STM32: Uart::write() would busy wait if the queue was full.

This is not how the interface specifies the behavior and leads to
problems when calling this method inside an interrupt, where it
stall the entire program.

Please never be tempted to busy wait inside any peripheral code.
If it is unavoidable, at least prevent a deadlock by using a timeout.