Rename replay-specific Step values to Replay.
Rename StepBreakReason to BreakReason.
Factor out break data into BreakStatus.
Move BreakStatus and related types to Session.
Rename Step* types to Record*.
Pass TraceStream to Task::spawn instead of getting it from Session.

DiversionSessions won't support trace() so we'll remove it from Session.
Remove Session::trace().
Remove non-const trace_fstream(), unused.
Make Task::trace_dir and Task::trace_time aware that we might not have a trace.
Add DiversionSession.
Move diversion-step logic into DiversionSession.

Refactors the code to share break-type diagnosis with ReplaySession.
Handle a DiversionSession exit.