Allow Range to accept Infinites

you can reduce the code below to `i += step` and remove `has_unbounded_start`