Bencode functions propagate potential errors

And renamed ast to bencode
Bencoded strings are bytes not chars

Bonus: Meager documentation
BString is Vec<u8>