Coercible: Do check for data constructors, but only in SafeHaskell

This partially reverts commit 2312f561715cf12987c032a385c47af8b9b42b8f.
Let genprimopcode handle primitive classes
Add documentation to coerce and Coercible