Understand `type[A | B]` special form in annotations (#14830)
resolves https://github.com/astral-sh/ruff/issues/14703
I decided to use recursion to get the type, so if anything is added to
the single element inference it will be applied for the union.
Also added this
[change](https://github.com/astral-sh/ruff/issues/14703#issuecomment-2510286217)
in this PR since it was easy.
---------
Co-authored-by: Carl Meyer <carl@astral.sh>