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.
Implement `{:s}` for ~str and @str as well
Delegate `{}` to Default instead of Poly

By using a separate trait this is overridable on a per-type basis and makes room
for the possibility of even more arguments passed in for the future.
quote_*! macros take an ExtCtx

They previously required one called "ext_cx" to be in scope.

Fixes part of #7727
auto merge of #8556 : sfackler/rust/quote, r=alexcrichton

They previously required one called "ext_cx" to be in scope.

Fixes part of #7727