Restart replay without doing the exec() dance.

Instead, this change has replay restart itself "inline", by resetting
the state of the replay session (which also rewinds all the replay
files).  Then replay continues on normally with the newly reset
session.
Make it easier to recognize shared mappings in replay.
Save the event at the debug target so that we can eventually recognize when checkpoints are stale.
Add helper to determine if a syscall is fully emulated.
Don't try to dump null desched events, and dump desched state.
Track more task state that we need to restore on deepforking.
Skip past intervening frames when looking for the syscall exit frame.