Make AutoDeriveTypeable imply DeriveDataTypeable
Properly instantiate the kind of the tycon when deriving Typeable (FIX #7704)
Do not generate duplicate instances with AutoDeriveTypeable