Refactor socket creation.

This is the first part of a refactoring after I saw a better pattern for
handling socket creation which didn't require us to do the DNS lookups
twice.

The first DNS lookup is done in the address class, and then split out,
so it made more sense to generate the sockets from the address itself,
which cleaned up all the ugly handle_connect code that was still around.
Further refactorings in socket areas
Rename sock to unix
Removing more duplicate code in sockets
Merge pull request #370 from mongodb/refactor-socket-factory

Refactor socket creation.