ENH: implement `digitize` with `PyArray_SearchSorted`

Closes #2656 and replaces #4184.
hm would also need a typed `check_array_monotonic` probably not worth the effort, btw that check could possibly also release the GIL