Allow Range to accept Infinites

> I think, this will depend on the step value...

It won't. Suppose we have `Range(-oo, oo, 3)` it is same as `Range(-oo, 0, 3) U Range(0, oo, 3)` hence all numbers of form `3k` will be members of `Range(-oo, oo, 3)`. Similarly `Range(-oo, oo, 3)` is also same as `Range(-oo, 1, 3) U Range(1, oo, 3)` hence all numbers of form `3k + 1` are also members of `Range(-oo, oo, 3)`. Extending the argument in a similar manner all integers are members of `Range(-oo, oo, a)` for all integers `a`. I should also add an explanation as a comment in the code, lest someone else looking at the code thinks of it as a bug.