Update process state when unblocking.

In theory this should not be necessary as we only ever manually unblock a
process like this when we're about to detach and let it run free. Still, it
helps to be consistent here. The right solution long term may actually be to
introduce a new state for 'DETACHED' to indicate when we're no longer
monitoring the state of a process.
Fix: Detach from a process when aborting tracing.

The previous approach was to PTRACE_CONT the tracee and then just pass through
any signals we receive going forwards. Somehow our pass through is not
transparent. E.g. gedit would lock up on some expected response from a socket
that our tracing at this point was interferring with. Rather than resolve what
was actually going on here, it seemed simpler to just detach the tracee
entirely and then wait on it to complete. I'm not sure why we weren't doing
this to begin with, given that we don't care about the behaviour of the tracee
once we've reached this point.

Going forwards, as we cover more of the syscall space, I imagine we will hit a
point that actually exposes what behaviour we are not presenting transparently
to the tracee. At this point we'll have to properly resolve this issue.