`TryFrom` for `f64`

This is the difference between #2 and #3, #2 is to fail for all big numbers, while #3 is to only fail for big numbers unrepresentable as a float. I suspect you could make #3 quite fast with bit fiddling (mask to get the mantissa, check the distance between the first and last '1' is small enough, or something like that).