Fill CUDA opset gap for ReduceMax and ReduceMin (18 → 20) (#27755)
### Description
Extends CUDA ReduceMax and ReduceMin kernel registrations from opset 18
to opset 20.
- **`reduction_ops.cc`**: Added
`REGISTER_KERNEL_VERSIONED_RANGE_AXES_INPUT_TYPED` macro for versioned
ranges requiring `InputMemoryType(OrtMemTypeCPUInput, 1)`. Split both
operators from 2-way (1–17, 18+) to 3-way (1–17, 18–19, 20+).
- **`cuda_execution_provider.cc`**: Capped opset 18 forward declarations
and `BuildKernelCreateInfo` entries to versioned 18–19. Added opset 20
non-versioned entries for both operators.
Type coverage maintained as-is: ReduceMax (float, double, MLFloat16,
int32_t, int64_t), ReduceMin adds int8_t, uint8_t.
### Motivation and Context
ReduceMax and ReduceMin CUDA registrations stopped at opset 18; ONNX
latest is opset 20. Models exported with opset 19–20 could fail to find
a matching CUDA kernel for these ops.
Follows the same pattern used in #27735 (TopK) and other opset gap PRs
tracked in #27729.
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: tianleiwu <30328909+tianleiwu@users.noreply.github.com>
Co-authored-by: Tianlei Wu <tlwu@microsoft.com>