remove Scheduler
disable a test of source_path() which was invalidated by removing the Scheduler
restore parent task reference to Tasks
fix remaining issues from removing Scheduler
since jl_task_t->last can now be null (if the thread hasn't started), let the gc know
remove unnecessary changes
more cleanup of Scheduler removal change
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.
propagate exception on wait() or yieldto() on a task in the exception
state

don't print fatal error for non-root task without exception
handler. this is not fatal and in fact can happen regularly.

small cleanups to yield_until()
cleanup and code reorg: move scheduler code to task.jl

now multi.jl deals only with distributed parallelism

remove no-longer-used WeakRemoteRef
Merge pull request #5687 from JuliaLang/jn/no_scheduler

remove Scheduler