Reuse the debug server state across replay restarts.

With this change, rr restarts replay "transparently" to gdb clients
when the client issues the "run" command; i.e. the user doesn't have
to do anything to reconnect to the restarted replay session.  That
means the debugging workflow is now

    # rr replay -p pid trace
    (gdb) b C
    Breakpoint 1
    (gdb) c
    Breakpoint 1, C ()
    # no more debugging to be done.  need to restart session.
    (gdb) r
    The program being debugged has been started already.
    Start it from the beginning? (y or n) y
    # rr "transparently" restarts the session
    Breakpoint 1, C ()
    (gdb)
    # ^^ tracee continued up to first breakpoint/watchpoint by gdb,
    # restarted debugging session ready.

Resolves #763.  This is part 3; turned out to be far easier, cleaner, and more reliable than part 2.

@rocallahan I dare say you'll like this :).  Please give it a try and let me know what you think.  This is way better than I'd hoped the gdb interaction would be for 1.0, so I'm willing to call 1.0 "UI complete" if you're satisfied.