Define `XRec` for location information and get rid of `HasSrcSpan`
Define `XRec` for location information and get rid of `HasSrcSpan`

In https://gitlab.haskell.org/ghc/ghc/merge_requests/1970 I propose a
simpler way to encode location information into the GHC and Haddock AST
while incurring no cost for e.g. TH which doesn't need location
information.

These are just changes that have to happen in lock step.

haskell/haddock,haskell/haddock,haskell/haddock,haskell/haddock,haskell/haddock