Add I2C interface

Tasks can issue a read or a write on the I2C bus. They are then
suspended while the operation is executed from the I2C interrupt
handler. They are woken up when the operation completes or when an
unrecoverable error occurs.
Add millisecond counter
Use millisecond counter in I2C example

The example now uses the time it takes to perform a measurement and
write the result to serial to space measurements an even 100ms apart.