GCS Trimming: allow trimming in leveling mode

Using the tranmitter trim was never updated to handle
the case of using "Leveling' mode which largely replaces
the old Stabilized{1,2,3} naming.
F4 Targets: enable WDG if it was not enabled

This was the case for
- freedom
- revomini

Not having the watchdog enabled is definitely risky.
stm32f30x/pios_i2c: fixed PIOS_I2C_EV_IRQ_Handler diagnostics
stm32f30x/pios_i2c: removed unused TransferCallback api function
stm32f30x/pios_i2c: use pios_mutex for bus locking, was pios_semaphore
stm32f30x/pios_i2c: fixed event overflow by removing excess PIOS_IRQ_Disable calls
stm32f30x/pios_i2c: fixed possible data race in I2C_Transfer
stm32f4xx/pios_i2c: use pios_mutex for bus locking, was semaphore
stm32f4xx/pios_i2c: fixed possible data race in I2C_Transfer
stm32f10x/pios_i2c: use pios_mutex for busy locking, was semaphore
Merge pull request #1248 from peabody124/gcs_trimming

GCS Trimming: allow trimming in leveling mode
Merge pull request #1251 from peabody124/f4_wdg

F4 Targets: enable WDG if it was not enabled
GCS/SparkyBGC: updates to the board plugin

Added image of the Sparky BGC board and query the maximum gyro
range.
SparkyBGC: remove code for MPU 6050

Conflicts:
	flight/targets/sparkybgc/fw/pios_board.c
SparkyBGC: remove reference to MS5611
SparkyBGC: remove ADC code

These pins are no longer broken out and it was breaking
the PWM outputs.
SparkyBGC: remove references to main port
SparkyBGC: add HwSparkyBGC uavobject settings

This gives the BGC board a custom setting. Now that it has
different ports than Sparky this is appropriate.
stm32f10x/pios_i2c: fixed possible data race in I2C_Transfer
SparkyBGC: update copyrights