Floats consists of [encoding/INT]-encoded mantissa "m" and
base-2 exponent "e": m * pow(2,e).

Normalised values *must* be used.
Separate tag's values are used for representing NaN and infinite
numbers. Zero is represented as zero mantissa and exponent.

            NaN = 0x10
           +inf = 0x11
           -inf = 0x12
    float(m, e) = 0x13 || INT(m) || INT(e)
            0.0 = float(0, 0)

That representation is far from being compact. Sending binary IEEE754
binaries may be more preferable.

Example representations:

NaN                              | 10
+inf                             | 11
-inf                             | 12
0.0                              | 13 0C80   0C80
45.25   m=181 e=-2               | 13 0C81B5 0D8101
-45.25  m=-181 e=-2              | 13 0D81B4 0D8101
0.125   m=1 e=-3                 | 13 0C8101 0D8102
0.15625 m=5 e=-5                 | 13 0C8105 0D8104
123.456 m=8687443681197687 e=-46 | 13 0C871EDD2F1A9FBE77 0D812D