The original code here used move semantics to transfer ownership,
but commit 15cb87576 (PR #5874) switched to using the simpler
by-reference semantics instead. Follow through on this change by
not creating an intermediate copy only to move that copy into
another object. Instead, copy only the report objects when creating
the output requests.
The EclipseState reference is used only for startThread(), so we
might as well request that the caller pass an object when calling
the startThread() function instead of keeping a reference to the
object throughout the simulation run.
While here, also rename the 'already_reported_steps_' to camel case.