UDP client code

* All UDP client handling refactored into a single class
* A single socket is used to connect to UDP servers
* Selective 'Transport::to_unknown'  instead of universal 'Transport::broadcast'
* Mitigate server advertisement flooding by limiting the number of nonpersistent servers to initiate connections simultaneously
* Use timeouts to detect nonresponsive servers.
* Respond to beacons.
* Run destructors on exit.
* Rename UDPClientTransport to UDPTransport