tickets/DM-199: Develop new master-worker result system

One way to do it that I don't think is horrible is to put the status information into an immutable struct. Each call to `report()` creates a new status information object, which `ExecStatus` would hold by reference counted pointer. Readers get consistent state snapshots, and you are protected from concurrent updates.