Boundschecks for searchsorted & remove step(r::Range)==0 tests

1) Check bounds on the more low-level searchsorted* methods.  Before
an error like this was possible:
```
julia> searchsortedfirst([1:10], 5,  -10, 7, Base.Order.Forward)
zsh: segmentation fault (core dumped)
```

2) Removes the step(r)==0 tests as ranges cannot have 0 steps (I
   think)

Note that the low-level sort! methods also do not check bounds.
Probably this should also be rectified.
Merge pull request #7078 from mauro3/sort_bounds_check

WIP: Boundschecks for searchsorted & remove step(r::Range)==0 tests