Define and use PprTyThing.pprTypeForUser
When printing types for the user, the interactive UI often wants to leave foralls implicit. But then (as Claus points out) we need to be careful about name capture. For example with this source program class C a b where op :: forall a. a -> b we were erroneously displaying the class in GHCi (with suppressed foralls) thus: class C a b where op :: a -> b which is utterly wrong. This patch fixes the problem, removes GHC.dropForAlls (which is dangerous), and instead supplies PprTyThing.pprTypeForUser, which does the right thing.