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 check_loans.rs from oldvisit to <V:Visitor> trait API.
an attempt at a singleton pausible idle callback for each scheduler. suffers from nondeterministic deadlock and also pending scheduler messages on scheduler shutdown.
std::rt: Touch up idle logic
std::rt: Fix a race in UvRemoteCallback's dtor that misses callbacks

Full description in comments.
Moved the logic for a pausible idle callback into a new type - PausibleIdleCallback and placed the appropriate signatures in rtio and implementation into uvio.
A round of code cleaning for the primary scheduler code. Comments have been updated, a minor amount of support type restructing has happened, methods have been reordered, and some duplicate code has been purged.
Rangechange the log message truncation limit.
Make supertrait methods callable on object types.

This requires changes to method search and to codegen. We now emit a
vtable for objects that includes methods from all supertraits.
Closes #4100.

Also, actually populate the cache for vtables, and also key it by type
so that it actually works.
clean whitespace :/
auto merge of #8459 : thestinger/rust/checked, r=graydon
auto merge of #8623 : pnkfelix/rust/fsk-visitor-vpar-defaults-step4, r=nmatsakis

Follow up to #8619 (step 3 of 5).

(See #8527, which was step 1 of 5, for the full outline.)

Part of #7081.
test: un-xfail now working run-pass/foreign-struct.rs, close #2334.
test: add testcase, close #4929 which was already fixed.