Remove Bencoding dictionary and float extensions

- The Bencoding specification does not allow integer values as
dictionary keys, so encode the integer member key as a string instead of
an int.
- The Bencoding specification does not have explicit support for
floating point values. Removed the custom extension and used a string to
encode the value. In the spirit of readability that is part of the
Bencoding design, the float is written as human-readable text rather
than a binary string.
- The "null" value token is the last remaining extension that is not
compliant with the Bencoding specification.