ENH: implement `digitize` with `PyArray_SearchSorted`

Closes #2656 and replaces #4184.
`PyArray_SearchSorted` will release the GIL for the heavy lifting of this function. The other potentially lengthy operation is this subtraction from the array length for decreasing `bins` arrays. Is it worth releasing the GIL here?