Makes two modifications to step 5 of overload call evaluation:
1. When materializing arguments to check whether we can
eliminate overloads, skip arguments that have the same
parameter type in all overloads.
2. When we still have multiple overloads after the materialization
filter, try to find a return type that all materializations of
all other return types are assignable to.
Updates the conformance tests as well. All type checkers already do
(1). Mypy and pyrefly pass the conformance test for (2). I believe
mypy has a heuristic that approximates the new rule; pyrefly
implements it exactly.