BUG: Fix qcut for nullable integers
- [x] tests added / passed
- [x] passes `black pandas`
- [x] whatsnew entry

Related to #31389 but doesn't close any issues that I'm aware of. Seems the problems were indexing into a numpy array with a BooleanArray and using searchsorted in the presence of pd.NA.