Allow use of more types of net.Conns in DNS client
Allow use of more types of net.Conns in DNS client

* Type assertions limited Conn to type *net.TCPConn or
*new.UDPConn.
* Changed to only test for *new.UDPConn, and otherwise
allow any net.Conn. The specific case is to allow use of
a SSH TCP port forward represented as a net.Conn.
* When Conn is *new.UDPConn, DNS-over-UDP is used. When
Conn is any other net.Conn, DNS-over-TCP is used.
* TODO: add a flag to dns.Conn to indicate which protocol
to use, to allow DNS-over-UDP protocol to be used over
other types of net.Conn?

Git-Host/dns,Psiphon-Inc/dns