This is an experiment that resulted in a major rewrite. In a nutshell, this is
what changed:

* The encoding and decoding are now capable of dealing with input and
output streams.

* New decoding option that allows certain values from a dictionary to be
decoded as raw byte arrays instead of UTF-8-encoded strings. This change
enables this lib to easily parse .torrent files.