BUG: isin numeric vs string
- [ ] closes #xxxx
- [x] tests added / passed
- [x] passes `black pandas`
- [x] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [ ] whatsnew entry

Using the new hashtables!

```
In [3]: arr = np.arange(10**7).astype(np.int32)

In [4]: %timeit isin(arr, arr[:10])
88.8 ms ± 497 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)   # <-- master
42.7 ms ± 385 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)   # <-- PR
```
nice! I don't think a whatsnew note is needed here @jbrockmendel can you check if this regresssion is related? https://pandas.pydata.org/speed/pandas/#series_methods.IsIn.time_isin?python=3.8&Cython=0.29.21&p-dtype='int64'&commits=11d0176c-5b91febe

(this commit seems the most likely in the range https://github.com/pandas-dev/pandas/compare/11d0176c...5b91febe) Good catch, looks like we're casting [1, 2] to ndarray[object] instead of ndarray[int].  ill see if theres an easy fix.