rewrite of child tracking and exit status

massive simplification of structure

thread tracks the child struct associated with it, so that it can set exit_status anytime
no more find thread or is child parent nonsense, just simple searches
kept everything cast to the top level (threads and children) no returning list elements

now fewer functions total, should be much easier to understand and debug

and might actually work ...