Make Data.Functor.Identity trustworthy again

Authored by hvr.

Description

Make Data.Functor.Identity trustworthy again

Alas {-# LANGUAGE Safe #-} can't be used since Data.Coerce isn't "safe".
However, we use coerce just as an optimisation
(see also 4ba884bdd3a9521ea92fcda8f601a7d0f3537bc1 which broke the
safe-inferred status of Data.Functor.Identity), so this module at least
deserves {-# LANGUAGE Trustworthy #-}.

NOTE: Data.Functor.Identity was added to base in the context of Trac #9664

Reviewed By: luite

Differential Revision: https://phabricator.haskell.org/D507