WIP Attempt to make FPEAuditor thread safe
Spawned from discussion at Brunel!866 (closed)
Please note this MR is very much WIP. Submitting to hopefully get some thoughts from @graven on the way to go here.
My thinking is perhaps it should be changed to simply not push/pop new guards for each algorithm initialise/execute/etc., and instead just use the 'global' guard, as its not clear to me the former makes any sense in a multithreaded application, given how the guards interacts with the CPU...