ENH/ERR: More consistent error reporting with invalid win_type in rolling
- [x] closes #15969
- [x] tests added / passed
- [x] passes `black pandas`
- [x] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [x] whatsnew entry

Also in-lining methods that were only used once and moving a BaseIndexer test that was using `win_type`
thanks @mroeschke  @mroeschke this seems to have broken dask (this PR, or one of the other recent rolling-related PRs, but from a quick look at the diff, I suspect this one)

AFAIU, the issue is that the `Rolling` object (returned from eg `df.rolling("1s")`, which *is* a public object) its `win_type` attribute changed in case of time-based windows. Before, this was set to `r.win_type == "freq"`, but that's no longer the case. Gotcha, do you have a reference issue how dask was using `win_type` attribute? Not yet opened an issue about it, but so this is the code where it is failing: https://github.com/dask/dask/blob/4a7a2438219c4ee493434042e50f4cdb67b6ec9f/dask/dataframe/rolling.py#L317-L326. So basically they used `win_type == "freq"` (`self._win_type` in dask is pandas' `Rolling.win_type`) to check if they have time-based rolling, and because that changed they now end up in a different if/else branch

The failure it is causing is eg https://github.com/dask/dask/runs/1644840945#step:5:4998