### Description
Introduce how to use matmul_4bits_quantizer to do weight only
quantization.
### Motivation and Context
Add 4bit quantizer to onnx runtime doc
- doc suggests that QDQ model are created with dynamic quant, which is
not the case anymore.
- updating and restructuring the doc
### Description
<!-- Describe your changes. -->
- QDQ model format representation doesn't come for dynamic quantization,
but the doc was suggesting.
- May be a couple of years back this support was there but not anymore
### 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. -->
- Clears misunderstanding that QDQ Onnx models can be created with
dynamic quantization.
https://github.com/microsoft/onnxruntime/issues/20125
Command was split from `shape_inference.py` to address import sequence
warnings in 8004db4bf1 and was not
updated.
Anyone following the docs prior to this change would have encountered;
```
root@Raze:~# python -m onnxruntime.quantization.shape_inference --help
/usr/lib/python3.10/runpy.py:126: RuntimeWarning: 'onnxruntime.quantization.shape_inference' found in sys.modules after import of package 'onnxruntime.quantization', but prior to execution of 'onnxruntime.quantization.shape_inference'; this may result in unpredictable behaviour
warn(RuntimeWarning(msg))
```
Instead of the expected;
```
root@Raze:~# ./onnxtesting/bin/python -m onnxruntime.quantization.preprocess --help
usage: preprocess.py [-h] --input INPUT --output OUTPUT [--skip_optimization SKIP_OPTIMIZATION] [--skip_onnx_shape SKIP_ONNX_SHAPE]
[--skip_symbolic_shape SKIP_SYMBOLIC_SHAPE] [--auto_merge] [--int_max INT_MAX] [--guess_output_rank]
[--verbose VERBOSE] [--save_as_external_data] [--all_tensors_to_one_file]
[--external_data_location EXTERNAL_DATA_LOCATION]
[--external_data_size_threshold EXTERNAL_DATA_SIZE_THRESHOLD]
Model optimizer and shape inferencer[continues]
```