DownsampleFactorMax support strides: issue #2196

This is not right: with `r=5`, `ds=1`, and `st=2`, for instance `nr` should be `3`, but this will output `5 // 2 = 2`.
Same thing for `r=7`, `ds=2`, `st=3`.
I think a better expression would be `(nr + st[0] - ds[0]) // st[0])`, which should be equivalent to `(nr - ds[0]) // st[0] + 1)`, which is what you also use in the other case, so maybe we can only use one formula.
We would need tests that check a variety of cases, and the expected shape would be determined by hand.