WebGPU QuantizeLinear: add int4/uint4 support
Extend the WebGPU QuantizeLinear kernel to support 4-bit integer types (Int4x2 and UInt4x2) in addition to existing 8-bit types.
- Add Y_PACKING_MODE template parameter to the WGSL shader, with separate code paths for 4-bit (8 elements per u32) and 8-bit (4 elements per u32) packing.
- Add GetU32PackingNumComponents() helper in quantization_utils to map packing mode to component count.
- Update quantize_linear.cc to dynamically determine y_components from the output type and register Int4x2/UInt4x2 output type constraints.
- Refactor shader to use #if/#elif chains for QUANTIZATION_TYPE and Y_PACKING_MODE branches.
- Add unit tests for Int4/UInt4 per-tensor, per-axis, and blocked quantization.