CLN/PERF: remove ndarray.take and platform int conversions
I was looking into #13745 (GIL on merge), and there's some low hanging fruit in the non-parallel case.
- a couple python `any` calls
- unnecessary (?) platform int checks / conversions. I'm testing on Windows - I'm assuming on
  Linux 64 this doesn't really make a difference.

``` python
In [1]: right = pd.DataFrame({'key': range(10), 'val': range(10)})
   ...: left = pd.DataFrame({'key': range(1,11) * 100000})

# master

In [2]: %timeit left.merge(right, how='inner')
10 loops, best of 3: 104 ms per loop

In [3]: %timeit left.merge(right, how='left')
10 loops, best of 3: 141 ms per loop

In [4]: %timeit left.merge(right, how='outer')
10 loops, best of 3: 125 ms per loop

# PR

In [2]: %timeit left.merge(right, how='inner')
10 loops, best of 3: 79.8 ms per loop

In [3]: %timeit left.merge(right, how='left')
10 loops, best of 3: 110 ms per loop

In [4]: %timeit left.merge(right, how='outer')
10 loops, best of 3: 100 ms per loop
```
