More human readable `$`(float)

The output matches that of Python (eg 1e100, not 1.0e100), but also
reflects locale (assuming it was set using setlocale() before).
Tests for `$`(float)
Merge pull request #1273 from katlogic/devel

Second stab at `$`(float)