[ty] Avoid emitting cascading diagnostics when parsing invalid type expressions (#24326)
## Summary
In lots of places in our type-expression parsing, we continue to call
`self.infer_type_expression()` on sub-expressions in the AST even after
we've already determined that the type expression is invalid. I think
that's generally a mistake; it often leads to us emitting many
diagnostics on a single type expression when one would really be
sufficient. This PR switches many callsites from `infer_type_expression`
to `infer_expression`, to avoid this phenomenon of cascading diagnostics
in error cases.
## Test Plan
Mdtests and snapshots updated.