Fix ClipQuantFusion crash when Clip has multiple input edges (#27016)
## Motivation
`ClipQuantFusion in clip_quantizelinear.cc` calls
`graph_utils::RemoveNode()` without first checking
`graph_utils::CanRemoveNode()`. When a Clip node has min/max inputs from
DequantizeLinear nodes (instead of initializers), it has multiple input
edges. `RemoveNode()` throws exception:
```
[ONNXRuntimeError] : 6 : RUNTIME_EXCEPTION : Exception during initialization: graph_utils.cc:650 bool onnxruntime::graph_utils::RemoveNode(onnxruntime::Graph&, onnxruntime::Node&) Should be unreachable if CanRemoveNodeAndMergeEdges is in sync with the logic here.
```
## Fix:
Added `CanRemoveNode()` check to `ClipQuantFusion::SatisfyCondition()`
to skip nodes that cannot be safely removed.
## Test:
Added `ClipQuantFusion_MultipleInputEdges` test that creates a Clip node
with min from a DQ node (2 input edges) and verifies the optimizer
doesn't crash.
## Note:
This PR is a duplicate of #26923 which GitHub is preventing us from
merging. Credit goes to original author @qti-yuduo.
---------
Co-authored-by: Yuduo Wu <yuduow@qti.qualcomm.com>