Improve color for code_warntype types (#45503)
This PR makes two changes: First, the "expected" union, i.e. the ones printed
yellow is now defined as one with at most 3 types, and where every element
of the union is Base.isdispatchelem. This is intended to be a conservative
threshold for when the compiler definitely ought to be able to create efficient
code for the union.
Second, now, "red" types override "yellow" types, where it was the opposite
before.
See #45501, #45502
Co-authored-by: Jameson Nash <vtjnash@gmail.com>