inference: apply tmerge limit elementwise to the Union (#50927)
This allows forming larger unions, as long as each element in the Union
is both relatively distinct and relatively simple. For example:
tmerge(Base.BitSigned, Nothing) == Union{Nothing, Int128, Int16, Int32, Int64, Int8}
tmerge(Tuple{Base.BitSigned, Int}, Nothing) == Union{Nothing, Tuple{Any, Int64}}
tmerge(AbstractVector{Int}, Vector) == AbstractVector
Disables a test from dc8d885, which does not seem possible to handle currently.
This makes somewhat drastic changes to make this algorithm more
commutative and simpler, since we dropped the final widening to `Any`.
Co-authored-by: pchintalapudi <34727397+pchintalapudi@users.noreply.github.com>
Co-authored-by: Oscar Smith <oscardssmith@gmail.com>