fix up spis error handling on stm32f373

first we should check for under run errors first since they are cleared
by a read of the SR reg and would previously never have been detected.

second after running the error callback, if the overrun condition has
not been cleared then clear it ourselves (st requires a read of the DR
reg and then a read of the SR reg to do this, this means we will throw
away a possibly good word from the DR reg but who cares, it is hard to
put the into the read buffer here and the stream is all out a wak
anyway)