Store a DialFunc for alternate dialers

For example, on Google App Engine one must use `socket.Dial` (from
`appengine/socket`) rather than `net.Dial`.