Fix passing empty label to df drop
- Closes #21494
- Tests added / passed

-Drop method in indexes/base.py, docs say KeyError should only be raised if **none** of labels are found in selected axis. However `pd.DataFrame(index=[1,2,3]).drop([1, 4])` throws.

-Makes behaviour consistent for .drop() across unique/non-unique indexes.
Both the below will now raise a KeyError

- `pd.DataFrame(index=[1,2,3]).drop([1, 4])`
- `pd.DataFrame(index=[1,1,3]).drop([1, 4])`

-Remove unused var `indexer` and `_axis`