Compartmentalize code

- Add a loop for multiple torrent sessions
- Move connection listening to its own file: new incoming connections
  are first verified for bittorrent correctness, and then only passed to
  the relevant torrent session

I also moved the outgoing handshaking directly in `torrent.go`, where all information is known (it was done in the peer before, but the peer doesn't need to know what's a infohash)