Fix overflow error in cartesian_product
When the numbers in `X` are large it can cause an overflow error on windows machine where the native `int` is 32 bit. Switching to np.intp alleviates this problem.

Other fixes would include switching to np.uint32 or np.uint64.

#15234 

# [Codecov](https://codecov.io/gh/pandas-dev/pandas/pull/15265?src=pr&el=h1) Report
> Merging [#15265](https://codecov.io/gh/pandas-dev/pandas/pull/15265?src=pr&el=desc) into [0.19.x](https://codecov.io/gh/pandas-dev/pandas/commit/ead784f2b46a785c74a88722dea75d5aedcb0a77?src=pr&el=desc) will **not impact** coverage.


```diff
@@           Coverage Diff           @@
##           0.19.x   #15265   +/-   ##
=======================================
  Coverage   85.27%   85.27%           
=======================================
  Files         144      144           
  Lines       50946    50946           
=======================================
  Hits        43444    43444           
  Misses       7502     7502
```


| [Impacted Files](https://codecov.io/gh/pandas-dev/pandas/pull/15265?src=pr&el=tree) | Coverage Δ | |
|---|---|---|
| [pandas/tools/util.py](https://codecov.io/gh/pandas-dev/pandas/compare/ead784f2b46a785c74a88722dea75d5aedcb0a77...b196878940f6c56d07667b5e987f7e25ad390693?src=pr&el=tree#diff-cGFuZGFzL3Rvb2xzL3V0aWwucHk=) | `96.77% <100%> (ø)` | :white_check_mark: |

------

[Continue to review full report at Codecov](https://codecov.io/gh/pandas-dev/pandas/pull/15265?src=pr&el=continue).
> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)
> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
> Powered by [Codecov](https://codecov.io/gh/pandas-dev/pandas/pull/15265?src=pr&el=footer). Last update [ead784f...c9c8d5e](https://codecov.io/gh/pandas-dev/pandas/compare/ead784f2b46a785c74a88722dea75d5aedcb0a77...c9c8d5e3f250299e9888da239ac9ea9246c047c1?el=footer&src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments). need a test for this (IOW something *simple* that fails w/o the fix and passes with it). 

best way is to step thru your code until you hit this and see what the inputs are (to cartesian product) and can use that as a test.

need a whats new (bug fix) as well. ping on green. thanks @david-hoffman 

FYI, you were actually branched off of the 0.19.x branch, rather than master, but I picked the commit.