Introduce a way to encode 32 bit floats

Ruby does not distinguish between 32 and 64 bit numeric values
because of automatic promotion of numeric types. However, AMQP 0.9.1
does and some RabbitMQ clients or plugins may declare entities
using 32 bit numeric types.

Deserialization of such types is not a problem. Indicating
that a float should be serialzied as 32 bit, however, is trickier.

This commit introduces a box class (think JVM boxed types) that is
serialized as a 32 bit float and does nothing else (deserialization
uses regular Ruby floats). It is also simply a container, not
a Float implementation so performing arithmetic on such boxes
won't work.