Use Data.Functor.Const to implement Data.Data internals
Use Data.Functor.Const to implement Data.Data internals

Summary:
`Data.Data` uses an internal datatype `CONST`, which can be replaced
completely by `Const` from `Data.Functor.Const`.

Reviewers: austin, bgamari, hvr

Subscribers: thomie

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

shlevy/ghc,olsner/ghc,snoyberg/ghc,sdiehl/ghc,ezyang/ghc,snoyberg/ghc,mettekou/ghc,mettekou/ghc,olsner/ghc,snoyberg/ghc,olsner/ghc,sdiehl/ghc,snoyberg/ghc,ezyang/ghc,olsner/ghc,sdiehl/ghc,mettekou/ghc,shlevy/ghc,olsner/ghc,mettekou/ghc,snoyberg/ghc,snoyberg/ghc,olsner/ghc,sdiehl/ghc,mettekou/ghc,sdiehl/ghc,shlevy/ghc,shlevy/ghc,shlevy/ghc,mettekou/ghc,olsner/ghc,ezyang/ghc,shlevy/ghc,mettekou/ghc,ezyang/ghc,ezyang/ghc,snoyberg/ghc,sdiehl/ghc,sdiehl/ghc,shlevy/ghc,ezyang/ghc,ezyang/ghc