proposed current_module behavior for tasks

First, we keep track of whether a task has asked to be in a particular
module (e.g. by initiating a source file load). If it has, then
current_module is always set appropriately for that task. That should
be uncontroversial.

Next, if a task doesn't care what module it is in, use the
current_module from its parent task. This is similar to the previous
commit's behavior of setting task->current_module at task creation,
except that it sees changes in the parent task's current module. So if
the parent task finishes loading something, the spawned task won't
think it is still inside that module. In other words, remember where
we got current_module rather than remembering the module itself.