Fix float to float ToPrimitive implementation.

The minimum (negative) value of a float is -Bounded::max_value(), not Bounded::min_value().
Otherwise the following has an incorrect behavior:

```rust
let a = -1.0f64;
let b: f32 = NumCast::from(a); // incorrectly returns None
```