[WIP, RFC] torrent file parser

This is a work in progress, I'm creating this pull request to get some reviews/comments.

This to do:

* Implement `toBEncode` methods.
* Expose lenses.
* Add tests.

How should I add tests? Should I add some example torrent files and try to parse them? As for properties, all I can think is `fromBEncode . toBEncode $ d = Right d`. Any other ideas?