ENH: Add numba engine for rolling apply
- [x] closes #28987
- [x] tests added / passed
- [x] passes `black pandas`
- [x] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [x] whatsnew entry

Random question: do you have benchmarks on this anywhere? It would be good to give guidance on when this is helpful (data sizes, type of user-defined function, ratio of time spent in windowing vs. the UDF, etc.). @TomAugspurger performance testing is lightly described in https://github.com/twosigma/pandas/pull/29, but good point to have a dedicated section in the documentation describing when the numba engine would be advantageous  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 2019-12-26 18:15:58 UTC @jreback ready for a review. Huh for some reason I was lucky enough to get https://github.com/pandas-dev/pandas/pull/30370/files#r360319942 Code check failures are related to https://github.com/pandas-dev/pandas/pull/30370/files#r361222880
I can submit a PR to fix this
```
Check for non-standard imports
##[error]pandas/io/stata.py:12:from collections.abc import Iterator
##[error]pandas/io/sas/sas7bdat.py:16:from collections.abc import Iterator
##[error]pandas/io/sas/sas_xport.py:10:from collections.abc import Iterator
##[error]pandas/io/common.py:5:from collections.abc import Iterator
##[error]pandas/io/parsers.py:6:from collections.abc import Iterator
##[error]pandas/io/json/_json.py:2:from collections.abc import Iterator
```

PR here: https://github.com/pandas-dev/pandas/pull/30455 This looks really nice.  way to go Thanks for the review everyone. Think I addressed all the comments. Thanks for another round of review. Addressed all the comments. Looks good.  thanks @mroeschke very nice! @mroeschke heads up that im now seeing this in test output locally:

```
pandas/tests/window/test_numba.py::TestApply::test_cache[False-True-False-False]
  /Users/bmendel/Desktop/pd/dtmean/pandas/core/window/numba_.py:75: NumbaPerformanceWarning: 
  The keyword argument 'parallel=True' was specified but no transformation for parallel execution was possible.
  
  To find out why, try turning on parallel diagnostics, see http://numba.pydata.org/numba-doc/latest/user/parallel.html#diagnostics for help.
  
  File "pandas/core/window/numba_.py", line 59:
  
              def impl(window, *_args):
              ^
  
    result[i] = numba_func(window, *args)
``` I'll make a followup to suppress this warning (no baring on what is being test).