Support canonical EP names in SessionOptionsAppendExecutionProvider (#24433)
### Description
Updates the `SessionOptionsAppendExecutionProvider` function to also
support full canonical provider names (e.g., QNNExecutionProvider) in
addition to the short names (e.g., QNN).
### Motivation and Context
There's an inconsistency in how ORT names EPs. The
`SessionOptionsAppendExecutionProvider` C API function uses short names
(e.g., "QNN"), but other ORT APIs use longer names (e.g.,
"QNNExecutionProvider").
- Python APIs to add EP to session uses "QNNExecutionProvider" (not
"QNN")
- Python and C APIs to GetAvailableProviders use "QNNExecutionProvider"
- Internal ORT code uses "QNNExecutionProvider" to assign nodes to cuda
ep.
- Only `SessionOptionsAppendExecutionProvider` uses short names like
"QNN".