Added ability for i2c slave to detect whether bus transaction ended with a STOP condition
i2cUnlock() now takes effect after *next* transaction

Disable event interrupts when entering i2cRxLocked or i2cReplyLocked modes
this allows proper reception of 1 byte messages with DMA
restore slaveNextReply and slaveNextRx in interrupt context!
Added i2cMasterSentAdr state.  Don't clear SR1_ADDR

until we're ready to receive msg.
Don't use DMA for one and two byte reception.
Added i2cMasterSelecting state.  Renamed i2cMasterSentAdr ==> i2cMasterStarted.

stopTimer() now defined if HAL_USE_I2C_LOCK
lockExpired ensures no master thread is waiting to start a transaction
removed obsolete warning about 0-byte SMbus writes.