Implement Categorical.searchsorted(v, side, sorter) #8420

jrebeck, I've tidied up my messy commits into this clean PR for #8420, incorporating your comments over the last few days.
I am happy with this always returning an array. Returning a scalar indexer is a bit odd IMHO. Pls fixup and just have one path.