[QNN-EP] Enable verbose and artifacts saving in onnxruntime_provider_test.exe (#26396)
### Description
<!-- Describe your changes. -->
- The change allows users to better debug unit tests by adding the
following environment variables:
- `QNN_DUMP_ONNX`: Dump input onnx model
- `QNN_DUMP_JSON`: Dump json qnn graph with provider_option
`dump_json_qnn_graph`
- `QNN_DUMP_DLC`: Dump dlc with provider_option `qnn_ir_backend_path`
- `QNN_VERBOSE`: Use the log level `ORT_LOGGING_LEVEL_VERBOSE`
- Developers can use the environment variables above to save the
artifacts of QNN-EP testcases to a directory named with
`<TestSuite>_<TestName>`
```
.
├── QnnCPUBackendTests_BatchNorm2D_fp32 # RunQnnModelTest
│ ├── dumped_f32_model.onnx # float32 ONNX model
│ ├── QNNExecutionProvider_QNN_XXXX_X_X.dlc
│ └── QNNExecutionProvider_QNN_XXXX_X_X.json
├── QnnHTPBackendTests_BatchNorm_FP16 # TestFp16ModelAccuracy
│ ├── dumped_f16_model.onnx # float16 ONNX model
│ ├── dumped_f32_model.onnx # float32 ONNX model
│ ├── QNNExecutionProvider_QNN_XXXX_X_X.dlc
│ └── QNNExecutionProvider_QNN_XXXX_X_X.json
└── QnnHTPBackendTests_BatchNorm2D_U8U8S32 # TestQDQModelAccuracy
├── dumped_f32_model.onnx # float32 ONNX model
├── dumped_qdq_model.onnx # QDQ ONNX model
├── QNNExecutionProvider_QNN_XXXX_X_X.dlc
└── QNNExecutionProvider_QNN_XXXX_X_X.json
# All artifact files are placed under the current working directory from
which the test binary is invoked.
```
### Motivation and Context
<!-- - Why is this change required? What problem does it solve?
- If it fixes an open issue, please link to the issue here. -->
- The Json qnn graph/dlc are helpful for backend to debug
performance/accuracy issues
- By comparing the onnx and Json qnn graph/dlc, we can locate the issue
about graph manipulation.