Properly nest diversion sessions, and allow debugger restart requests
to end diversions.
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.