fix

list_init (&child_list) has to be in init_thread so that the child list of the initial thread gets initialized too.  we were getting errors trying to push stuff onto it.
fix again

but setting the parent tid should NOT be in init_thread, because only when we add_child will the thread have a parent
so init_thread now inits parent_tid to TID_ERROR, meaning the thread has no parent.  only if add_child is called on the thread, does the current thread get registered as its parent.

this also means that thread_create and init_thread are now completely free of calls to thread_current (not allowed) and running_thread (sketchy) before thread_unblock
consider changing running_thread in add_child to thread_current to get back the safety and follow rules better