Revert set_index inspection/error handling for 0.24.1
Reverts #24762 and #22486 as an alternative to #24984 for 0.24.1. I've kept the docstring updates from #24762, because they are independent of the code changes (otherwise the docstring validation would throw up anyway).

There were conflicts for `test_set_index_pass_single_array` and `test_set_index_pass_arrays_duplicate`, where I've tried to err on the side of inclusiveness. The rest of reversions in `/tests/` I didn't touch - those remain in master anyway.