Informs metainfo tracker of events and gets new peers for peer
start() creates a thread and starts it.
At the end of each run, a TimedEvent is queued on the SimpleTimer2 queue.
The TimedEvent creates a new thread and starts it, so it does not
The thread runs one pass through the trackers, the PEX, and the DHT,
then queues a new TimedEvent and exits.
Thus there are only threads that are actively announcing, not one thread per torrent forever.
start() may be called again after halt().
Very lazy byte to URL encoder. Just encodes almost everything, even
some "normal" chars.
By not encoding about 1/4 of the chars, we make random data like hashes about 16% smaller.