[compiler-rt][msan] Add MSan support for Hexagon (Linux) (#189124)

Add the runtime infrastructure for MemorySanitizer on Hexagon Linux.
Hexagon is 32-bit, so the shadow memory layout uses a compact XOR-based
  mapping that fits within the lower 3GB of address space:

    0x00000000 - 0x10000000  APP-1     (256MB, program text/data/heap)
    0x10000000 - 0x20000000  ALLOCATOR (256MB)
    0x20000000 - 0x40000000  SHADOW-1  (512MB, covers APP-1 + ALLOCATOR)
    0x40000000 - 0x50000000  APP-2     (256MB, shared libs + stack)
    0x60000000 - 0x70000000  SHADOW-2  (256MB, covers APP-2)
    0x70000000 - 0x90000000  ORIGIN-1  (512MB)
    0xB0000000 - 0xC0000000  ORIGIN-2  (256MB)

MEM_TO_SHADOW uses XOR 0x20000000, and SHADOW_TO_ORIGIN adds 0x50000000.
  The dual-APP layout accommodates QEMU user-mode, which places shared
  libraries and the stack at 0x40000000.

  The allocator uses SizeClassAllocator32 with a 256MB region at
  0x10000000, and kMaxAllowedMallocSize is set to 1GB consistent with
  other 32-bit targets.

GitOrigin-RevId: 44f1fa909953febfe019da533ec172da1348ac7b
3 files changed