[ArrayManager] TST: run (+fix/skip) pandas/tests/indexing tests
xref #39146

Extracting part of the test changes of https://github.com/pandas-dev/pandas/pull/39578. To keep the size a bit more limited, I am splitting the PRs, so this PR is doing `pandas/tests/indexing`. The `pandas/tests/frame/indexing` are handled in https://github.com/pandas-dev/pandas/pull/40323


So one of the main causes for differences in behaviour between BlockManager and ArrayManager, is that ArrayManager always takes the "split" path in the indexing code. And, the split path has different behaviour for several cases compared to the single block path. Which is the case for both BlockManager and ArrayManager, but because many of the tests are using simple dataframes, the default tests with BlockManager don't catch this. 

For example, setting values with `.loc[:, col]` still overwrites the column instead of updating inplace when possible.

I still need to open issues for those several cases that fail for BlockManager as well. > So one of the main causes for differences in behaviour between BlockManager and ArrayManager, is that ArrayManager always takes the "split" path in the indexing code

FWIW ive got a branch nearing readiness that makes setitem_with_indexer take the split_path iff it is 2D, which will hopefully make keeping these behaviors in sync somewhat easier. one question, LGTM pending green