Refactor rbcs to be monotonically increasing.
Disable gdb pagination in tests.

Adds a -x option to rr to pass additional command files to gdb, and uses this
to pass src/test/test_setup.gdb in all gdb-related tests. This file contains
a command to disable gdb's pagination, which interferes with our test scripts.
Add support for performing instruction-by-instruction tracing when replaying
a specific trace event.

Set 'instruction_trace_at_event' in the debugger to a trace event number.
rr will single-step the tracee while replaying that event (e.g. when replaying
execution up to that event's syscall) and print the register state at each
instruction. Very useful for debugging divergences!

Also, may fix a bug where single-stepping the first instruction while replaying
to an event does not work. Definitely fixes a bug where try_one_trace_step was
reading uninitialized req.type in the first trace step.
Don't call destroy_buffers until we've actually entered the exit system call.

Calling destroy_buffers when our next system call is exit(), but before we've
actually reached that system call, currently causes us to ignore breakpoints
that would be hit between the current program point and the exit(), because
advance_syscall just ignores them.

Instead, after we've actually entered exit(), then call destroy_buffers. This
has the nice feature that we don't need flags for destroy_buffers anymore
because both callers call it after entering exit().
Update clone test to include a breakpoint in the cloned thread and test the child_tid functionality.
Add explicit_checkpoint_clone test to test checkpointing of thread state.

We had a nasty bug where, when deepforking a thread, we'd set_child_tid on the
new thread but forget to set its pid_futex. So when we later made a clone of
the new thread, we wouldn't call set_child_tid on that clone.
Fix more exit paths where we fail to destroy the debug context before we exit.