Bencode reader

This is a complete rewrite of the bencode decoder since the old one was based on `[]byte` which is bad for multibyte characters since they weren't read correctly.

This new version is using `bufio.Reader` and therefore is _much_ better. And faster.