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 util/common.rs from oldvisit to <V:Visitor> trait API.
Ported coherence.rs from oldvisit to <V:Visitor> trait API.
Ported rusti::utils from oldvisit to <V:Visitor> trait API.
Port entry.rs from oldvisit to <V:Visitor> trait API.
Port freevars.rs from oldvisit to <V:Visitor> trait.
Port kind.rs from oldvisit to <V:Visitor> trait API.
ported lang_items from oldvisit to <V:Visitor> trait.
Port regionck from oldvisit to <V:Visitor> trait API.
Port check_loans.rs from oldvisit to <V:Visitor> trait API.
Clarify docs on CString.unwrap()

CString.unwrap() drops ownership of the buffer on the floor. Put this in
the docs.
auto merge of #8525 : graydon/rust/2013-08-14-register-snapshots, r=brson

r? someone
rustc: Change ICE message to reflect that ::rt::backtrace doesn't exist
auto merge of #8481 : cmr/rust/bench/std/at_vec, r=graydon
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.