rustc: catch non-trait methods before typeck.

Closes #3973.
@alexcrichton Done.