iter: fix range docstrings
iter: replace comment with a docstring
iter: move Counter impl to the proper place
iter: add `RangeStep` and `RangeStepInclusive`
auto merge of #9199 : thestinger/rust/range_step, r=cmr

My focus was on getting these to be correct in all cases by handling overflow properly. I'll clean them up and work on the performance later.