librustc: Fix `expr_use_visitor` (and, transitively, the borrow check)

with overloaded calls.

This enforces the mutability and borrow restrictions around overloaded
calls.

[breaking-change]

r? @alexcrichton