Move time tick from Torrent into Tracker.

This is to prevent Torrent from blocking while wating for the tracker to respond, which will prevent us from recieving pieces. This could also be done by not blocking in Torrent on the promise from Tracker, but that would make the logic more complicated
Break up message handling and frame parsing