Stm32 i2c watchdog

Supersedes #659 as an attempt to fix #71

Open questions:
- ~~overflow of SysTimeTimer at ~70min a problem?~~ nope
- ~~make watchdog var volatile~~ done
- 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?