Rename `Torrent` to `MetaInfo` and refactor

This moves what was previously called the `Torrent` module into a
`MetaInfo` module, which should be concerned solely on decoding BEncoded
data; while a higher-level `Torrent` module, will handle downloads and
concurrency.

Other modules could be added as we go along. But ideally, I'd like to
start delimiting nice clear boundaries between them and draft a good
library spec through testing.