Fix for #1850

FOR IN RANGE loop works now even with float arguments.
I'd like to have separate tests for integers and floats. Test with integers could use normal `range` to test results:

    def test_integers_only(self):
        for input in [(10,), (-10,), (1, 10), (1, 10, 2), (10, -5, -2), ...]:
            assert_equals(frange(*input), range(*input))

With floats it would be nice to have separate tests for giving only start, giving start and stop, and for giving start, stop, and step. More combinations should be tested too, especially combinations there the last value gets close to the stop marker.

The reason I'd like to get more tests is that `frange` itself is the core of this new functionality. It's way easier to test it on unit level than on acceptance level. Changes required elsewhere are pretty minimal, and can be tested without having a massive amount of acceptance tests.