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
So by using a mutex it is safe(r) to now do this afterwards, correct?