I2c fixes

* depends on #1245
* uses pios_mutex instead of semaphore for locking
* fixes premature unlock in PIOS_I2C_Transfer()
* fixes excess irq disable calls in f3 driver
* fixes f3 diagnostics buffer mismatch
Yes, it has already been removed from the f1 and f4 drivers. This is just to make them more consistent.