Ported check_const from oldvisit to <V:Visitor> trait API.
Ported check_loop from oldvisit to <V:Visit> trait API.
Port check_match from oldvisit to <V:Visitor> trait API.
Port const_eval from oldvisit to <V:Visitor> trait API.
Ported effect checker from oldvisit to <V:Visitor> trait API.
Port privacy.rs from oldvisit to <V:Visitor> trait.
port reachable.rs from oldvisit to <V:Visitor> trait.
port region.rs from oldvisit to <V:Visitor> trait API.
port resolve.rs from oldvisit to <V:Visitor> trait.
Ported trans/base.rs from oldvisit to <V:Visitor> trait API.
Ported liveness.rs from oldvisit to <V:Visitor> trait API.
Ported typeck::collect from oldvisit to <V:Visitor> trait API.
port callee.rs from oldvisit to <V:Visitor> trait API.
port type_use.rs from oldvisit to <V:Visitor> trait.
Ported typeck/check/mod.rs from oldvisit to <V:Visitor> trait API.
Port regionck from oldvisit to <V:Visitor> trait API.
compiletest: Run tests in their own thread to avoid blocking the scheduler

The calls to waitpid are interacting badly with the message passing that goes
on between schedulers and causing us to have very little parallelism in
the test suite. I don't fully understand the sequence of events that causes
the problem here but clearly blocking on waitpid is something that a
well-behaved task should not be doing.

Unfortunately this adds quite a bit of overhead to each test: one thread, two
tasks, three stacks, so there's a tradeoff. The time to execute run-pass on
my 4-core machine goes from ~750s to ~300s.
Fix select deschedule environment race for real this time, in light of task killing.
Cleanup: remove useless parameter
Test for issue #6338.