TYP: change ArrayLike/AnyArrayLike alias to Union
follow-on from #36092

The first commit is the change in the alias.

Although this does get rid of many of the false positives, as well as removing ignores this also results is some changes in the mypy error codes and some new errors where we might need a typevar (or more likely an overload)

The subsequent commits were an attempt to ensure that this PR only removed ignores.

The PR is starting to get a bit difficult to review imo. so I have stopped for now.

I could break off the first commit and then submit the subsequent commits as separate PRs if it makes review easier.
Watching progress on this so I can restart work from #39501 LGTM

@jreback let's prioritize this to avoid merge conflict pileups