Suppress error messages about function types whose result is ty_err

Ideally we would suppress error messages involving any types that
contain ty_err, but that's awkward to do right now.
Make `self` visible when typechecking nested functions

Necessary to allow supertrait methods to be called in default methods.

r=nikomatsakis