Add linker pool allocator for aarch64 under qemu (cf GHC #24432)
When running the GHC RTS linker under qemu user-mode emulation, mmap hint addresses are ignored, causing allocations to scatter across the address space. This leads to ADR_GOT_PAGE relocation overflow (±4GB range exceeded) on aarch64. This patch pre-allocates a single contiguous 512MB RWX pool and sub-allocates from it for all linker needs: sections, GOT, BSS, and COMMON symbols. The pool is split into RW (growing down) and RX (growing up) halves, guaranteeing all allocations stay close. Also fixes GOT slot allocation for STB_LOCAL symbols (e.g. approx_tab in Android NDK's libm.a) which have GOT-relative relocations but were not assigned GOT slots. Applied to GHC 9.6.7, 9.8.3+, 9.10.2+ (versions that already use m32 for regular sections but missed BSS, COMMON, and GOT). Enables android and aarch64-cross TH tests (annotations, js-template-haskell, th-dlls) that were previously disabled due to iserv hanging under qemu.