Adds module_i2c_shared, correctly ACKs during multi-byte reads, and adds repeated start on NACK behaviour

* module_i2c_shared
   - Allow multiple logical cores to safely share a single I2C bus. Uses module_i2c_simple.
   - There is no documentation for this yet, but it should only need something lightweight before release...
* Correctly ACK during multi-byte reads
   - This was a bug fix to module_i2c_simple, now when performing a multi-byte read all but the final byte will be ACKd.
* Repeated start on NACK behaviour
   - module_i2c_simple can now be built to send repeated starts and retry reads and writes, to support I2C slaves that use NACKs rather than clock stretching to slow down the master.
   - Documentation added for the new defines introduced to module_i2c_simple, and included in the RST docs.