AP_NavEKF: Fix bug that could cause divergence in magnetic field states

Leaving the off-diagonal terms in the state covariance matrix frozen
when magnetic fields state corrections were inhibited was incorrect as
these terms capture the correlation between the errors in the various
states, and need to either be continuously updated, or zeroed.

A theoretically more correct approach is to turn the process noise on these
states to zero when corrections are being inhibited, which keeps all the
correlation information up to date. This has been applied to the magnetic
field covariances. the simpler approach of resetting the off diagonal terms
to zero was not used as this slows learning to a crawl when the inhibit
is being turned on and off constantly which is the case for copter

For wind states, the simpler approach of zeroing the off diagonals in the
P matrix has been adopted, as wind state estimation is not turned on and
off constantly in flight like magnetic field estimation can be for copter
and rover