Support fp4 type in ORT (#25767)
### Description
https://github.com/onnx/onnx/pull/6318 and
https://github.com/onnx/onnx/pull/6283 added FP4 support to ONNX. This
change introduces the FP4 type in ORT and adds type support to one
relevant operator (`Cast`) as a proof-of-concept for the type
integration into ORT. More op support will be added on a need-basis.
This change took inspiration from the following PRs:
https://github.com/microsoft/onnxruntime/pull/14731
https://github.com/microsoft/onnxruntime/pull/22228
https://github.com/microsoft/onnxruntime/pull/20362
Some notes:
1) Only `tensor` type gets support for FP4 initially. Secondary types
like `seq(tensor)`, `sparse_tensor`, `optional` do not get support (so
as to not introduce unnecessary bloat to the framework without a solid
use-case)
2) Flatbuffer related files receive no updates in this PR
### Motivation and Context
Be able to run FP4 models with ORT