BUG: rolling with Int64
- [x] closes #43016
- [x] tests added / passed
- [x] Ensure all linting tests pass, see [here](https://pandas.pydata.org/pandas-docs/dev/development/contributing.html#code-standards) for how to run them
- [x] whatsnew entry

thanks @mroeschke  FWIW:

```
In [1]: import numpy as np

In [2]: import pandas as pd

In [3]: from pandas.core.dtypes.common import *

In [4]: arr = np.arange(5, dtype=np.int64)

In [5]: %timeit np.asarray(arr, dtype=np.int64)
150 ns ± 14 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)

In [6]: %timeit arr.astype(np.int64, copy=False)
181 ns ± 13.3 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)

In [7]: %timeit ensure_int64(arr)
63.1 ns ± 8.89 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)
```

The absolute cost is very small, but its optimized to the bone. I think this also fixed my issue in #43381. Any chance it can be backported to the 1.3.x branch? We backport only regression fixes 