stm32_i2c: handle more unexpected ISR conditions

this clears the interrupt for more unexpected ISR conditions that
otherwise lead to an ISR storm. When that happens no user threads are
able to run as the I2C ISR is continually raised

Thanks to Lorenz for help in tracking this down