[ty] Remove `multi_inference_state` (#24184)
This removes the internal `multi_inference_state` field in
`TypeInferenceBuilder` in favor of `TypeInferenceBuilder::speculate`.
This is more ergonomic to use, and also allows us to maintain the
invariants of `TypeInferenceBuilder` more consistently.