EKF Updates and Bugfixes

These updates address the following issues:

1) Enumerated variables with clear names have been used instead of numeric types to describe the position and velocity aiding status of the filter. this makes the code easier to read and maintain. Maintainability enhancement, no functional change.

2) Constant position and constant velocity mode should never be enabled at the same time. there was one place in code where this condition was not being explicitly enforced. Fixes potential bug.

3) The decision to enter constant velocity dead reckoning mode and leave it during optical flow operation was done in two separate places, making it harder to follow and increasing the changes of a coding error during subsequent modifications. Maintainability enhancement, no functional change.

3) The declaration of non user tunable parameters was inconsistent. some were declared using AP param types, others using standard types. some were initialised in the constructor and others were initialised by function call. Also a number of delay and timeout time variables were using signed integer values. These have been changed to unsigned types for consistency. All non user adjustable parameters are now declared as const types. All variables are now initialised by function call to enable an in-flight reset to be used later if required. Maintainability enhancement, no functional change.

5) The code calculating the EKF solution status summary was hard to follow and had a parenthesis error in the calculation of the absolute position status which had the potential to cause a reporting error under some combinations of inputs. Fixes potential bug.

6) Miscellaneous compiler warning messages have been eliminated. Maintainability enhancement, no functional change.