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.