Fix crash on join of recursive types (#11433)
The initial implementation was not very careful, so I only keep the covariant part, while other cases fall back to old simple logic (which is actually correct for invariant type parameters).
Co-authored-by: Ivan Levkivskyi <ilevkivskyi@dropbox.com>