Use mmap() for large aligned allocations to avoid cross-NUMA arena reuse
Worker/SharedHistories allocations on Linux were served by glibc malloc arenas, which survive thread destruction and can be reused by threads bound to a different NUMA node. This caused non-deterministic remote memory and lower NPS when Threads was set multiple times.
Route aligned_large_pages_alloc_with_hint() through direct mmap() on Linux, storing the base/size so aligned_large_pages_free() can munmap() the original mapping. Merge the existing x86_64 MAP_HUGETLB bookkeeping into the same registry.
fixes https://github.com/official-stockfish/Stockfish/issues/6516
Benchmark: 288 threads, 36864 MB hash, depth 15 (10 runs per config)
```
| Build | Case | Avg NPS | Min NPS | Max NPS | Range |
|--------|--------------------------|-------------|-------------|-------------|-----------|
| master | Case1 (Threads set x2) | 253,196,264 | 252,034,443 | 254,396,860 | 2,362,417 |
| master | Case2 (Threads set x1) | 248,224,546 | 247,304,918 | 249,306,273 | 2,001,355 |
| fix | Case1 (Threads set x2) | 254,675,607 | 253,991,054 | 255,600,403 | 1,609,349 |
| fix | Case2 (Threads set x1) | 254,931,057 | 253,979,373 | 256,334,683 | 2,355,310 |
```
closes https://github.com/official-stockfish/Stockfish/pull/7095
No functional change