ENH: Add method argument to rolling constructor to allow table-wise rolling
- [x] closes #15095
- [x] tests added / passed
- [x] passes `black pandas`
- [x] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [x] whatsnew entry

Hello @mroeschke! Thanks for updating this PR. We checked the lines you've touched for [PEP 8](https://www.python.org/dev/peps/pep-0008) issues, and found:



















There are currently no PEP 8 issues detected in this Pull Request. Cheers! :beers: 

##### Comment last updated at 2020-12-27 19:53:30 UTC Some performance timings:

```
df = pd.DataFrame(np.random.rand(10, 1000))

def f(x):
    return np.sum(x, axis=0) + 1

roll_single = df.rolling(2, method='single')

roll_single.apply(f, raw=True, engine='numba')  # cache

%timeit roll_single.apply(f, raw=True, engine='numba')
37.8 ms ± 136 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)

roll_table = df.rolling(2, method='table')

roll_table.apply(f, raw=True, engine='numba')  # cache

%timeit roll_table.apply(f, raw=True, engine='numba')
201 µs ± 4.06 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)
``` Looks like everything is passing but I think the tests I added are having trouble running on Travis (but they run fine on Azure).

Possibly want to wait until https://github.com/pandas-dev/pandas/pull/38344 is in Looks like Travis is timing out

```
No output has been received in the last 10m0s, this potentially indicates a stalled build or something wrong with the build itself.
```

Locally, the tests I added to do take a long time to run (parameterized over a lot of values).

We have the same tests running & completing in Linux py37 min versions and Windows py38 

 cc @jbrockmendel if you can have a look hmm https://dev.azure.com/pandas-dev/pandas/_build/results?buildId=50763&view=logs&j=ba13898e-1dfb-5ace-9966-8b7af3677790&t=b1c574fb-a97a-52bc-a09f-24b62226e66f some legit failing Thanks @jreback. Merge conflict mess up on my part.   thanks @mroeschke very nice here!