Accept derived Read on an empty data type (Trac #7931)
Do not do an ambiguity check on the type in a GHCi ":kind" command

Otherwise we get errors for polykinded type families;
   type family F a :: *
Then :k F
would give an ambiguity check trying to unify (F k1) with (F k2),
which is all a bit stupid.

I found this when investigating Trac #7939
Print kinds of non-* tyvar binders in pprTyThing

This makes the output of :info more useful
Give 'unboundName' a very low binding precedence

This fixes Trac #7937
Merge branch 'master' into overlapping-tyfams