Handle custom socket factory in SRV.

The opt.socket passed to a connection may be a function, as in
lib/connection.js#L78

However, the session in node-xmpp-client will use the same socket for
the SRV request:
https://github.com/node-xmpp/node-xmpp-client/blob/master/lib/session.js#L94

This change allows the SRV lookup to handle a socket factory so that
an alternate socket implementation can be passed to the Client.