BUG: fix get_indexer_non_unique() with 'object' targets with NaNs (#4…
…4482)

numpy.searchsorted() does not handle NaNs in 'object' arrays as
expected (numpy/numpy#15499).  Therefore we cannot search NaNs using binary
search.  So we use binary search only for targets without NaNs.

- [x] closes #44482 
- [x] tests added / passed
- [x] Ensure all linting tests pass, see [here](https://pandas.pydata.org/pandas-docs/dev/development/contributing_codebase.html#pre-commit) for how to run them
- [x] whatsnew entry

This does also put the whatsnew of #44404 to the correct place.
Rebased & resolved conflict thanks @johannes-mueller very nice, keep em coming!