Add helper to determine if a syscall is fully emulated.
Don't try to dump null desched events, and dump desched state.
Track more task state that we need to restore on deepforking.
Skip past intervening frames when looking for the syscall exit frame.
Add handling for missing event types.
Merge remote-tracking branch 'staktrace/dumpabort'
Merge remote-tracking branch 'passimm/master'
Share the syscallbuf shmem file through /proc/fd.
Move buffer-init code into Task.
Move buffer-destruction code into Task, where we want it for other uses.
Move logic to finish emulated syscalls into Task.
Set TLS for the right task.
Fix tracking of task prnames.
Gracefully fail to set invalid breakpoints.
Track address spaces that are cloned for fork() children.
Fix this FileId constructor.
Implement the "deepfork" feature to copy a tracee tree, and use it to make debugger restarts faster.

"Deepfork" means making a copy of every tracee process/task/file
that's independent from the original.  Deepforking is used to make
checkpoints of replay state, in which one of the copies can be
advanced/mutated/whatever without affecting the other.

With this patch, a checkpoint is made when the debugger is attached
during replay.  In the common case, when the user issues the
debugger-restart command, then rr will simply resume executing with
the checkpoint without doing any extra work.  There are many more ways
checkpoints can be used to good effect.

There are numerous subtleties in this (mega-)patch, but an attempt was
made to document them in the code.