Faster version of liberty_float - gives a 25% to 50% speedup

This also fixes a bug in liberty_float for numbers with a magnitute
between 9 and 15.

Previously:
    >>> liberty_float(1e15)
    '1000000000000000'
    >>> liberty_float(1e10)
    '10000000000.'
    >>> liberty_float(1e9)
    '1000000000.0'
    >>> liberty_float(1e16)
    '1.000000e+16'

Now:
    >>> liberty_float(1e15)
    '1.000000e+15'
    >>> liberty_float(1e10)
    '1.000000e+10'
    >>> liberty_float(1e9)
    '1000000000.0'
    >>> liberty_float(1e16)
    '1.000000e+16'
1 file changed