API/BUG: raise only KeyError failed on geitem/loc lookups
- [x] closes #21567
- [ ] tests added / passed
- [x] passes `black pandas`
- [x] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [ ] whatsnew entry

ATM we raise a mix of KeyError and TypeError.

I'm in the process of going through the Indexing issues will see what else this closes.
As a follow-up to this, it turns out we can entirely rip out _convert_scalar_indexer, which will be really nice I think this makes sense though may break some user code catching a TypeError, so if others agree at least worth a note *maybe* a deprecation I don't think it is possible to do with a deprecation? Or how would people be able to avoid the deprecation? 
We could maybe also have a custom exception class that inherits both ..

Apart of changing the API; I assume that those different errors where there initially to provide a more useful error message to the user (instead of just "KeyError: some_value") ? ok I think this is reasonable, e.g. this highlites the difference between indexing a list for example with a non-integer (raises TypeError) and a dict with anything (raises KeyError). consistency is good. 

As far as user impact; this is a change, but likely does not affect very many downstream users (who are likely catching both TypeError and KeyError).

would be ok with simply changing this (to raise KeyError), unless other objections. this is a good change, any objections @jorisvandenbossche  Thanks @jbrockmendel 