'QnnEpFactory' should provide a fully-qualified path to the backend (#25407)
### Description
The `QnnEpFactory` implementation currently initializes the underlying
provider by passing the `backend_type` configuration as `htp`, causing
the provider to find the appropriate backend-library, and load it
relative to the OnnxRuntime library. But if EP's are distributed
separately from the OnnxRuntime library - a major benefit of the EP ABI
- then the backend-library may-well not be relative to the OnnxRuntime.
Having the `QnnEpFactory` implementation look for its associated runtime
relative to _itself_ would allow the implementation to bring its own
runtime - and that's what this PR enables.
If the `QnnEpFactory` implementation is co-located with the OnnxRuntime
library, then this is consistent with the existing behavior, but an
`QnnEpFactory` implementation that is shipped 'out-of-band' will use a
backend-relative to itself.
WinML has been using a version of this fix, and this PR is 'upstreaming'
the change.
### Motivation and Context
To support out-of-band distribution of EP's - enabled by the EP ABI work
- then EP's should accommodate finding dependencies relative to the EP
library, and not the OnnxRuntime library.
---------
Co-authored-by: George Wu <jywu@microsoft.com>