Move abstract class check into checkValidInstHead
Coercible: Do check for data constructors, but only in SafeHaskell

This partially reverts commit 2312f561715cf12987c032a385c47af8b9b42b8f.