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.
Fix swapped gdb watch types.

This test actually passes before the bug fix. The write-watch is
turned into a read-watch and then a read-write-watch, but gdb seems to filter
out the spurious breakpoint events that don't change the value.
The read-watch is turned into a write-watch, but then we break on the
read anyway due to another rr bug which will be fixed in an upcoming patch.
Fix watchpoint counts.

Resolves #1260.
Terminate diversion session when we get a request to change breakpoint state that was not initiated by gdb.
Add signal-rr-recording.sh script to send a signal to all currently-recording rr processes.