Ground-Plugins-Created gcscontrolplugin

Provides a GCSReceiver API
ground-plugins-gcscontrol renamed to gcscontrolwidget
Ground-plugins-gcscontrol- made gcscontrolwidget use the gcscontrolplugin API
ground-plugins-gcscontrolwidget-renamed gcscontrolplugin to gcscontrolwidgetplugin
ground-plugins-gcscontrol add timer to periodically send gcsreceiver

This is needed in order to not trigger failsafe.
ground-gcs-plugins-gcscontrolwidget fixes compile issue with USE_SDL=TRUE
ground-plugins-gcscontrolwidget added gcscontrolplugin as dependency
ground-plugins-gcscontrol completed file header information
ground-plugins-gcscontrolwidget removed unused function
f4 pios_i2c: fsm rewrite to get rid of all errors and special cases
all pios_i2c: moved event enum definition into private header
all pios_i2c: removed first_txn as it was unused
AltitudeHold: clean up how settings are loaded

This prevents any bad data getting in while the system
is initializing.
AltitudeHold: move variables into the method when possible

This is just better coding style and none of those variables
needed to be global.
AltitudeHold: add 100 ms delay to start up

For some reason it can sometimes produce NAN without this change
and I cannot for the life of me determine why.
AltitudeHold: more small cleanups
AltitudeHold: add alarm to indicate it is safe to use AH

This also checks for invalid values and prevents arming.
AltitudeHold: use queue to update setting instead of callback

Since we already have a queue this avoids any potential race
conditions across contexts.
AltitudeHold: remove OP author line since I'm the sole author
AltitudeHold: remove some unused variables