Config connection, socket classes

This makes the connection class (by default `Net::LDAP::Connection`) and the socket class (by default `TCPSocket`) configurable, and extracts the repetitive "new connection" stanza into a `new_connection` method.

I don't foresee people replacing either object with something entirely different, but this opens up new opportunities for integrators to wrap the `Net::LDAP::Connection` or the `TCPSocket` classes with a decorator or anything without having to monkeypatch the class.

Need to document, test the behavior, but wanted to open up the idea for discussion first.

cc @jch @schaary