Stm32 i2c watchdog

Supersedes #659

Open questions:
- overflow of SysTimeTimer at ~70min a problem?
- make watchdog var volatile
- is it needed to disable/enable the i2c irqs in nvic, or sufficient to just disable the interrupts in the i2c driver? (which could also be more succinctly written as ```i2c_disable_interrupt(i2c, I2C_CR2_ITEVTEN)```)

@dewagter what do you think?