Fail gracefully on diverging recursive type aliases (#13352)
This is another follow up on #13297.
We can't support aliases like `Nested = Union[T, Nested[List[T]]]` (and it looks like no-one can, without hacks like fixed type recursion limit). I would propose to just ban them for now. We can reconsider if people will ask for this.