Build with abseil 20250814 (NVCC) (#28586)
### Description
Narrow, Abseil-only build fix. NVCC's `cudafe++` (EDG front-end) fails
to parse the
`IfRRef<...>::AddPtr<...>` qualified-ids used by the lifetime-bound
`insert_or_assign` /
`try_emplace` overload sets in abseil 20250814 (`raw_hash_map.h`,
`btree_container.h`) when they
appear inside heavily macro-expanded template parameter lists. Plain g++
accepts the same code.
This adds a top-level `IfRRefAddPtr<T, Other>` alias and routes the
affected use-sites through it so
the member-template lookup happens outside the surrounding dependent
template-id. Because it stays an
alias template, substitution remains in the immediate context, so
forming a pointer-to-reference is
still a soft (SFINAE) failure rather than a hard error — original
behavior is preserved.
Applied as a cmake patch under
`cmake/patches/abseil/absl_cuda_warnings.patch`, so it is picked up by
both the FetchContent and vcpkg Abseil paths.
### Scope
This is intentionally an **Abseil-only** fix. It does **not** address
the CUDA 13.3 CCCL/CUB
(`::cuda::proclaims_copyable_arguments`) parse error — that is handled
by #29042. This PR is not a
complete CUDA 13.3 build fix on its own.
### Motivation and Context
Needed to build ONNX Runtime against the abseil version pulled in by
recent CUDA toolchain updates.
Plain g++ compiles fine; only NVCC needs this workaround.