Set an event while TftpServer.listen() runs

Most non-trivial uses of TftpServer.listen() are in a dedicated
thread. In this case, it can be useful to wait until the server
thread is running, so we signal this with a threading.Event.
Set listenport to the port chosen by bind()

The server can be run with listenport=0, in which case bind()
will select a port. In this case, it can be useful to inspect the
port number, so we set self.listenport.
Test case for dynamic server listenport