Encapsulate replay state machine steps behind RecordSession::replay_step().

RecordSession knows nothing about debugger requests. replay_step() returns
debugger stop reasons (breakpoint, watchpoint, signal) as result codes
and it's up to callers to process those for a debugger.
Make setup_replay_one_trace_frame a member of ReplaySession and simplify accessors.
Make ReplaySession::set_last_task private.
Move some replay session startup code into ReplaySession::create.
Remove #includes no longer needed in replayer.cc.
Switch Stepping values to StepCommand and make many static functions members of ReplaySession.

Also introduces advance_to_next_trace_frame() to encapsulate trace record
reading and coalescing.
Remove unnecessary indirections now that functions are members of ReplaySession.
Remove unused accessors.
Remove unnecessary accessor.
Move more functions into ReplaySession and make CPUIDBugDetector private.
Stop passing pointers to current_step around.
Stop passing regs pointer around.
Make syscallbuf_flush_buffer_hdr private.
Remove unnecessary parens
Move replay state types to ReplaySession.h.
Rename rep_desched_state to ReplayDeschedState.
Rename ReplayDesched enums
Rename rep_flush_state struct
Rename ReplayFlushBufferedSyscallStep enum
Rename ReplayTraceStepType enum.