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().