[EP ABI] Add CreateCustomOpDomains() API for plugin EP to register custom ops
Description
Currently, the provider-bridge TRT RTX EP and TRT EP supports registering custom op domain list in session option so that it can run model contains TRT specific custom ops.
This PR adds the same feature for plugin EP.
The newly added two APIs, CreateCustomOpDomains() and GetNumCustomOpDomains, is used when running inference on a model that contains EP-specific custom operations.
Workflow:
- The EP implements these functions to supply a list of
OrtCustomOpDomaininstances. - The application calls
SessionOptionsAppendExecutionProvider_V2()with theOrtEpDevicecontaining the plugin EP's factory. -
SessionOptionsAppendExecutionProvider_V2()internally appends the providedOrtCustomOpDomainlist to the session options.
As a result, any session created from these session options will have these custom op domains registered in ORT, ensuring that the custom ops are properly recognized and validated when the model is loaded.
Node: For compile-based EPs, the EP does not need to provide a concrete kernel implementation for each custom op. Instead, it may provide only placeholder custom ops with the correct names so they can be recognized during model loading.