Do not specify a signal when terminating a process/thread.

As explained in a comment in the code:
    We have to use SIGKILL here, for two (related) reasons:
    (1) we want to make sure the tracee can't catch the signal when we are
        trying to terminate it;
    (2) using SIGKILL allows us to send the signal with a simple `kill()`
        instead of having to use ptrace(PTRACE_CONT, ...)`.

Also, by removing the notion of signal termination, we can keep a sane
interface for the windows implementation that doesn't have a notion of killing
with a signal.
Handle signal terminations properly in Linux Process.
Properly wait for the inferior when killing it.
Properly handle processes being terminated.

When a process is being terminated, all relevant data is not available
from /proc anymore, we need to be careful as to what we try to gather
from there.