Replay: tear down threads before exitting
NKQ is a generated name - don't copy it across to output
Stop whinging about presence of NKF6 and friends; we know these generated names are not going to be present in modern logs
memcpy rather than strncpy within log_FMT
Correct strings vs optionally-terminated structure entries in sanity checks
Call AP_Param::load_all() to start the parameter saving thread. AP_Compass' init() method now saves parameters (compass reordering), and because we're disarmed we will block until the parameter is pushed onto the to-save queue; if there's no thread popping off that list we block indefinitely.
Remove duplicate definitions of various singleton objects.
Replay: write out GPS message to output log
Useful for diagnosis, but also because we struggle to find a time base
without this and the pymavlink tools take forever to work
Replay: set COMPASS_DEV_ID and COMPASS_PRIO1_ID so EKF gets mag data
Replay: avoid use of system clock; use stopped-clock only
Replay: constraint to emitting output for single core only