Introduce new C++ API for C interfaces (#25762)
### Description
<!-- Describe your changes. -->
This PR provides C++ interfaces for the following:
Env
====
CopyTensors()
CreateSharedAllocator
GetSharedAllocator
ReleaseSharedAllocator
CreateAndRegisterAllocatorV2
RegisterAllocator
UnregisterAllocator
EpDevice
======
EpDevice_MemoryInfo
CreateSyncStreamForEpDevice
MemoryInfo
========
CreateMemoryInfo_V2
MemoryInfoGetName
MemoryInfoGetId
MemoryInfoGetMemType
MemoryInfoGetType
MemoryInfoGetDeviceMemType
MemoryInfoGetVendorId
Session
==========
SessionGetInputName
SessionGetOutputName
SessionGetMemoryInfoForInputs
SessionGetMemoryInfoForOutputs
SessionGetEpDeviceForInputs
SyncStream
===========
SyncStream_GetHandle
ReleaseSyncStream
OrtArenaCfg
===========
CreateArenaCfgV2
TRT
===
CreateTensorRTProviderOptions and V2
UpdateTensorRTProviderOptions
SessionOptions
==============
OrtSessionOptionsAppendExecutionProvider_CPU
Prepacked container
=============
CUDA Options V2
===========
OrtCUDAProviderOptionsV2
CreateCUDAProviderOptions
GetCUDAProviderOptionsByName
UpdateCUDAProviderOptionsWithValue
UpdateCUDAProviderOptions
GetCUDAProviderOptionsAsString
### Motivation and Context
<!-- - Why is this change required? What problem does it solve?
- If it fixes an open issue, please link to the issue here. -->
Provide a way to write exception safe code.