WIP: searchsorted implementation

closes #6712

- [ ] `timedelta64` tests
- [ ] more edge case testing
- [ ] how should non-monotonic indexes be handled (currently raising a `ValueError`)?
- [ ] `datetime64` (and probably `timedelta64`) coercion needs work
- [ ] `side` argument testing
ie you can't use the result of `self.take(index)` (generally) to slice anything (tho that's not really a guarantee of `searchsorted` anyway since it can return something out of bounds of the calling object)