Make ghc-heap multi-platform
Motivation
It's been my long-standing goal that GHC should be as target-agnostic as possible. ghc-heap is very low priority on this list, as it can be construed as "target agnostic but host specific" already (i.e. it tells you about it's own heap). Still, one could imagine it could both do that, and crawl core dumps of foreign code, or do it live with iserv
for some remote debugging wizardry.
I got the idea when hunting down TABLES_NEXT_TO_CODE
in !152 (merged)
Proposal
Pull out all the CPP / HSC into one module, that fills in some "abi config" struct. Everything else pulls the magic numbers from the struct.