This fixes a number of bugs in the thread-release code:
- notify parents only if the group leader is a zombie,
and if it's not a detached thread.
- do not reparent children to zombie tasks.
- introduce the TASK_DEAD state for tasks, to serialize the task-release
path. (to some it might be confusing that tasks are zombies first, then
dead :-)
- simplify tasklist_lock usage in release_task().
the effect of the above bugs ranged from unkillable hung zombies to kernel
crashes. None of those happens with the patch applied.