Clarify Data.Data documentation
Clarify Data.Data documentation

Explain much more clearly when `dataCast1` and `dataCast2` can
have non-trivial implementations. On a couple different occasions,
I have attempted to write better defaults for these, only to
discover that we can't really do that. The new documentation
implicitly explains why that is.

[skip ci]

Reviewers: austin, hvr, bgamari, angerman

Reviewed By: bgamari, angerman

Subscribers: angerman, rwbarton, thomie

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

sdiehl/ghc,sdiehl/ghc,shlevy/ghc,ezyang/ghc,sdiehl/ghc,ezyang/ghc,shlevy/ghc,shlevy/ghc,ezyang/ghc,shlevy/ghc,ezyang/ghc,sdiehl/ghc,ezyang/ghc,ezyang/ghc,shlevy/ghc,sdiehl/ghc,shlevy/ghc,sdiehl/ghc,shlevy/ghc,sdiehl/ghc,ezyang/ghc