Add the information about the parent of each tracee.

The Talloc destructor could be optimized by using a dedicated list of
children per tracee.
Add initial stub for ptrace emulation.

Change-Id: I95874a1e1eb5dee5bf76c06a79c5c1ab6d936064
Add initial support for ptrace emulation: ``strace-4.5.20 /bin/true`` works.

Change-Id: I6f2ac1a2a489452e533e395f1e6d2e288d77ac68
Add initial support for ptrace(GETSIGINFO), required for strace-4.6.

Change-Id: I9be6cee9fb112a44ffb638a443399cd2b0b34c6e
Write ptracer's register cache back when restarted asynchronously.

This makes the ptrace emulation works under ptrace-4.6.

Change-Id: Id0272576f3353a11fc039c637c7061e4f3268f53
Add initial support for ptrace(POKE*), required for ``strace -f``.

Change-Id: I97c45bf1c732b237c6e4ff4cb762ee7b47a0dd49
Fix PTRACE_O_* inheritance + clean translate_ptrace_exit() a little bit.
Detect when the ptracer has gone to wait before the ATTACHME request.

This condition isn't supported yet.
Support when the ptracer has gone to wait before the ATTACHME request.
Fix the tests related to ptrace.
Add support for GCC function instrumentation.

Build with CFLAGS='-finstrument-functions -O0 -g' and LDFLAGS='-rdynamic'
to enable this mechanism.
Rework how a ptracee event is handled.
Use a three-state "waits_in" field instead of two distinct booleans.

Some combinations weren't possible, for instance:

    waits_in_proot && waits_in_kernel
The ptracer can't handle any events until the vfork/execve flow is completed.

Otherwise this would create a dead-lock.
Initial support for non blocking ptrace-wait(2) + add missing error checks.
Initial support for PTRACE_KILL and PTRACE_GETREGSET (not tested).
Distinguish event for proot/ptracer more clearly + add Tracee->running field.
Fix multi-process support for ptrace(2), ``strace -f`` barely works.
Reports event to the ptracer only from the first ptracee's SIGSTOP.

A process is not traced right from the TRACEME request; it is traced from
its first SIGSTOP, whether this signal was sent by itself with raise(2) or
it was induced by a PTRACE_EVENT_*.

This reverts commit 7c9aa494 "The ptracer can't handle any events until
the vfork/execve flow is completed."
Report 1st SIGSTOP even if the ptracee returned from fork before its ptracer.

Note: the starting SIGSTOP is required by strace, proot, ... for
example, it is used by strace to clear the child breakpoint
(clearbpt).