Server: reuse UDP socket

Reasons:
* Save file-descriptors
* Support clients behind NAT

In the process I renamed `_udpServer` to `_udpSocket` for clarity.

The same should be done for the client side. It makes even more sense there, because P2P apps shouldn't waste file-descriptors, especially because clients need to have these sockets opened for a longer time. Yet the changes will be larger as we need to demux responses from multiple servers with different connection/transaction ids.