* Unit testability: split out definition of statuses struct.
* Separate out getLoad() function
* Bug Fix: getAdvance1() & getAdvance2() should return a signed value.
* secondarytables.cpp - extract duplicate code into functions.
* Bug fix: BIT_STATUS3_FUEL2_ACTIVE not set in 2 cases.
* Performance: secondaryTables call percentage()
(which is optimised)
* Add secondary table tests
* Bug Fix: do not correct secondary spark multiplier
* Unit test no secondary spark with fixed timing.
* MISRA fixes
* Save memory: remove statuses::ignLoad2 & fuelLoad2 (unused)
* Unit testability: split out definition of config page structs.
* Make 3D table interpolation a const operation.
* Unit testability: inject the tune & status.
* Make the advance2 gauge work correctly in multiply mode
* Secondary table tests - no global state
* Secondary table tests: add additional spark multiply tests to cover #1274
---------
Co-authored-by: Josh Stewart <josh@noisymime.org>