DownsampleFactorMax support strides: issue #2196

I think you can use the `out_shape` function from the Op here, rather than re-implementing it.
There should be a different test for `out_shape`, but that test should compare `out_shape` against a bunch of shapes that are pre-computed by hand, not against a re-implementation.