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
AltitudeHold: if there is a NAN go back to WAITING_BARO

This resets the state
AltitudeHold: add proper reset state which clears the EKF memory

Now all the variables are reset to a known state when in the init
state and if an error is encountered the init state is reentered.
AltitudeHold: rename running to engaged

This name is more descriptive as running confuses running the
control loop with running the EKF.
AltitudeHold: rename AH_INIT to AH_RESET

AH_INIT was confusing since that occurred before AH_WAITINING_INIT
AltitudeHold: remove checks that are no longer required
AltitudeHold: clean up the initialization states
AltitudeHold: EKF updates when baro does

No need to run it faster off just the accels
AltitudeHold: fix term in the filter to previous value
AltitudeHold: remove unused code

Now the EKF only updates with baro updates no need to have two
kalman gain equations.