Reorg and encode

reorg the packages a little.
And add a proper bittorrent encoder. :-)
This func should be just `New(...)` in each package.