BUG: support min/max functions for rolling windows with custom BaseIndexer
- [X] xref #32865 
- [X] 1 tests added / 1 passed
- [X] passes `black pandas`
- [X] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [X] whatsnew entry

## The problem
We currently don't support several rolling window functions when building a rolling window object using a custom class descended from `pandas.api.indexers.Baseindexer`. The implementations were written with backward-looking windows in mind, and this led to these functions breaking.
Currently, using these functions returns a `NotImplemented` error thanks to #33057, but ideally we want to update the implementations, so that they will work without a performance hit. This is what I aim to do over a series of PRs.

## Scope of PR
This PR proposes an alternative implementation for the `min` and `max` rolling window functions implemented in the `_roll_min_max_variable` function in the `aggregations.pyx` file.

## Perf note
This implementation is slightly faster than the one on master branch (tested with a `Series` with 10e6 randomly generated values and `timeit`). If necessary, I can add a benchmark to the benchmark suite, although it must be noted that we need to benchmark with large arrays of data to minimize the effect of overhead.
The core idea is that we ancor the output index we write at to the index in the input value array it corresponds to. This generalizes the function and also removes the need to fiddle with `close_offset`.

Aside from that, I reuse the original algorithm with some minor adjustments that allow the functions to work with any monotonic windows (window starts and ends stay in place or move to the right). On another note, with these changes, it is no longer necessary to have separate code for initializing the first value and for writing the final value. Everything can be done in the main loop. @jreback 
Between the new issue and the changes made, I think all the comments are covered. Is there anything else we should do before merging?  will looks again soon Changed the `ForwardIndexer` implementation to mirroring the one I will propose exposing to users in a separate PR. Some pipelines are canceling on timeout. Should have nothing to do with this PR, but I restarted the tests just in case. Hm. py37_np_dev seems to be hanging for everyone. If it doesn't recover after an hour, I'll post an issue (unless someone beats me to it). thanks @AlexKirko  Thanks!