Support sendmmsg/recvmmsg within socketcall.

Resolves #1069.
Add orphan_process test.

This test checks whether we can successfully record a descendant
process that forks when its parent no longer has rr as an ancestor
process. This test currently fails with Yama ptrace_scope = 1.
Don't check current value of tid_futex location.

Technically it's valid for a tracee to change the value at this address.
Remove Yama ptrace_scope check since we're going to make it unnecessary.
Add ptrace-based fallback to read and write tracee memory for when /proc/<pid>/mem isn't open.

Not used yet since open_mem_fd still asserts when the open fails.
Fold reopen_mem_fd into open_mem_fd.
Add receive_fd.
Make open_mem_fd() puppet the tracee to open its own /proc/self/mem and pass the fd back to rr.

This works around Yama not letting us open the file directly.

Resolves #764.
Make child_mem_fd per-AddressSpace instead of per-Task.

This is more logical. It saves fds and also means what when we spawn a thread
we don't have to (re)open the mem fd.
Add a note to replace existing fd-passing code with receive_fd().
Bump version to 1.5.0.
Restart clone() system call until we get the PTRACE_EVENT_CLONE/FORK event we're expecting.

It's possible for a clone() system call to be interrupted, generating a
spurious syscall exit event. When that happens, the current code would get
fatally confused because it depends on the syscall exiting immediately.

Resolves #1200.
Add fork_stress test.
When a test fails due to a difference in output between recording and replay, print the diff of the results.
Add assertions to check that the encoded event data field is wide enough for its data.
Fix raw-dump header to match reality.
Make tracee writes to rr's stderr/stdout non-interruptible.

This avoids situations where multiple threads concurrently write to
stdout/stderr, in which case rr does not know which order to echo them in
during replay.

Resolves #1201.
Microoptimize syscallbuf initialization to avoid redundant gettid() syscall.
Remove spurious return statement.
Remove spurious debugging code.