Serialize a float (as opposed to a double) when that yields the same value

msgpack-ruby always serializes floating point values as a double (0xcb).
When serializing the value as a float (0xca) yields the same result, this should be the preferred serialization.
The performance impact is one additional (shortening) assignment and one compare per serialization of a floating point value, probably balanced at least in part by writing fewer bytes in many cases.