PA: Implement AllocToken support in PartitionAlloc

This CL integrates LLVM's AllocToken feature into PartitionAlloc. This
feature enables the compiler to inject a type-derived "alloc token" into
allocation calls.

The key modifications include:
- AllocatorDispatch API Update: Allocation and reallocation function signatures within allocator_dispatch.h now accept an additional `size_t alloc_token` argument.
- AllocToken Symbols: New symbols __alloc_token_malloc and so on are defined.
- Multiple PartitionRoots: `PartitionAllocFunctionsInternal` is refactored to manage two partition roots, selected by alloc_token.
- Build Configuration: A new `config("alloc_token")` enables the necessary Clang and linker flags.

Change-Id: I8f9bef3a84a4debcda3647c59ef0c671cb02bd85
Bug: 477186304
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7396999
Reviewed-by: Sergei Glazunov <glazunov@google.com>
Reviewed-by: Takashi Sakamoto <tasak@google.com>
Commit-Queue: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Stephen Nusko <nuskos@chromium.org>
Reviewed-by: Takuto Ikuta <tikuta@chromium.org>
Reviewed-by: Mikihito Matsuura <mikt@google.com>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1575347}
NOKEYCHECK=True
GitOrigin-RevId: 150979b30b232291e2efc8de7114caadda909920
27 files changed