ENH: implement `digitize` with `PyArray_SearchSorted`

Closes #2656 and replaces #4184.
your new searchsorted is typed, so do we still need to cast to double?