Implement float support to FOR IN RANGE loops (fixes #1850)

FOR IN RANGE loop works now even with float arguments.
I don't trust this code. Based on playing on Python prompt, I don't see this could ever return anything than 0 with positive exponents. For example, `str(1.123456789012345e20)` is `'1.12345678901e+20'` which means that your `digits2int` is 20 and `digits1int` is 11. I don't think any number would get `digits1int > digits2int`.

Another problem is that the code doesn't work with negative exponents. If I got it right, `1e-20` would return 20 digits.

To make it certain this works correctly, you should add separate unit tests for the scientific notation. It would probably be also a good idea to add separate tests for testing `_digits` alone.