Use updated definition of XRec from #17587 to implement modular, extensible handling of source locations in the AST
Located (HsExpr p) or similar types, we should have
XRec p (HsExpr p)
XRec allows annotating certain points in the AST with extra information. This
maybe be source spans (for GHC), nothing (for TH), types (for HIE files), api
annotations (for exactprint) or anything else.
This should hopefully bring us one step closer to sharing the AST between GHC and TH.