Switch infer_values_based_on to require_join_free_values in cond resolver
This further simplifies the cognitive surface of the condition resolver API
just like
786c1cdd and a3ae79ed. During the sprint to add at least *some*
sanity to the codepath infer_values_based_on was introduced as a stopgap to
allow
83a6b244 to somehow proceed forward. Since then the amount of spots
where this logic is necessary steadily went down, bringing us to the current
place: there is just a single spot in the entire codebase that passes a
non-empty inferrence structure.
Given the entire codepath is rather baroque, the entire idea of inferrence is
pushed to new_related instead, leaving the API of the resolver itself even
simpler.
There are no known issues as a result, verified by re-running the entire test
plan for downstreams as described in
12e7015a.