OVEP: Bug Fixes, Refactoring, and Contrib Ops Update (#23742)
### Description
This pull request combines multiple improvements, bug fixes for the
OpenVINO Execution Provider (OVEP). The changes are summarized as
follows:
1. Support for various contrib Ops in OVEP.
2. Dimension Check Fixes for Greater, Pad, and MAX Ops: Fixed dimension
check failures for the Greater, Pad, and MAX ops in OVEP, ensuring they
now pass validation for all supported models.
3. Refactor Core and Shared Context Lifetimes: Refactored the lifetimes
of the OpenVINO core and shared context to remove dependency on shutdown
calls. This change avoids relying on static lifetime management and
improves stability and resource cleanup.
4. Fix for Duplicate DQ Node Removal: Addressed an issue where duplicate
Dequantize (DQ) nodes that were initializers were incorrectly removed.
Initializers should always be preserved, and this fix ensures that all
duplicate DQ nodes that are initializers are retained.
---------
Co-authored-by: Ankit Maheshkar <ankit.maheshkar@intel.com>
Co-authored-by: n1harika <niharika.sathish@intel.com>
Co-authored-by: rayngun <103146671+rayngun@users.noreply.github.com>
Co-authored-by: jatinwadhwa921 <110383850+jatinwadhwa921@users.noreply.github.com>
Co-authored-by: Eric Crawford <eric.r.crawford@intel.com>
Co-authored-by: Surendar Rama Sitaraman <surendar.rama.sitaraman@intel.com>