[ONNX] Support ONNXFakeContext with op_level_debug (#105874)
Previous to the PR, op_level_debug doesn't support OnnxFakeConext because it relies on real tensor in args to do shape type inference propagation in fx graph to get static shapes helping simulating the op args/kwargs. However, OnnxFakeContext will fakify the args/kwargs at the very begining, so the op_level_debug can't have the static_shapes to utilize.
This PR uses SymInt API: `has_hint` and `hint_int` to fully replace the functionality of shape type inference propagation. The static shapes are obtained through SymInt. Therefore, the pass `ShapeInferenceWithFakeTensor` is eliminated.
Also moved the args/kwargs processing into op_validation to live under the rule `op_level_debug`.
Pull Request resolved: https://github.com/pytorch/pytorch/pull/105874
Approved by: https://github.com/thiagocrepaldi, https://github.com/BowenBao