Use the typer in ExprUseVisitor and do not hard code to tcx
Remove the regionck impl of Typer and just use fcx. This requires
modifying fcx to remove type variables where possible, but that's it.
Extend Typer interface to include `expr_ty_adjusted` so that we can
remove another direct dependency on tcx from euv.
Remove `McResult` from the mem-categorization interface.
Move mem-categorization more things to use TYPER for the method origin
auto merge of #20158 : nikomatsakis/rust/fn-inference-refactor, r=eddyb

Various refactorings simplifying the mem-categorization and regionck interface. This is working towards an improvement for closure-and-upvar-mode inference.

r? @eddyb