Peripheral: I2c: Fix nasty hidden bug in I2cWriteReadAdapter.
SSD1306: Fix possible corrupted state after calling update() method.

The update() method is blocking but only until a transaction is started.
It will not wait until the display buffer is transferred, which means
that calling any coroutine directly after update() may have corrupted
the internal i2cTask state.
This is prevented by using the special adapter for both normal as well
as display buffer transfers, which also improves memory footprint.
Driver: I2cEeprom: Update for use with I2cDevice and Coroutines.