support a connection callback for proxies

also refactors connection establishment to only go through one method
Could you leave this out of the change log for now? We usually update this when we prepare for a release. For example, see https://github.com/ruby-ldap/ruby-net-ldap/pull/174