Revive dying diversion session if fresh register or memory writes are performed before we've resumed the replay.
Escape printed debugger binary payloads.
Fix assertion to treat debugger restart requests (including checkpoint restarts) as valid reasons to end a diversion.
Test gdb "run" and "restart" commands after a diversion.

Also tests complex tracee function call atomic_printf("hello%s", "kitty"),
which triggered an rr bug where the diversion session died too early, after
the malloc() allocating space for the first string.