Fix returns from polymorphic methods

Return proto type was wrong; it was the type of the method
(with PolyParams if that type is polymorphic), where it should
have been the return type instantiated with the local type parameters.
We now instantiate the prototype as required.

Note the typing of return nodes is a bit more subtle than in scalac, because
dotc trees are immutable, so the tree pointed at by the context is of no help -
it does not have a return type which we could make use of.
Don't transform Return#from

Explanation given in the comment.
Label defs are not source methods.

If this commit is made without the previous fixes to returns,
we get errors in dotc_parsing (without the fix to polymorphic
returns) and in dotc_core (without the fix in tree transform).
Move isSuppressed check from Reporter to ConsoleReporter.

isSuppressed forces computation of the error message; should be
called only when emitting the error.

TODO: Generalize so that other emitting reporters inherit the behavior.
Merge pull request #302 from dotty-staging/fix/returns

Fix/returns