`AbstractInterpreter`: stash inferred `CodeInfo` even when optimization doesn't happen (#51952)
After #51888, `(result::InferenceResult).src` is set to `nothing` in two
situations:
1. When the inference result is limited due to recursion.
2. When optimization is unnecessary as the result is already precise.
This commit allows external `AbstractInterpreter` to differentiate
between these two situations by retaining the inferred source code in
`result.src` for the latter case. This is particularly crucial for the
functionality of JET's analysis.