Let users provide Client with a Custom socket module

Hi!

I'd like to suggest this patch that lets users provide their own socket module to Client. 

The (obvious) use case is to let users use pymemcache with libraries such as gevent that propose an alternate socket module, without needing to use monkey patching that can get ugly / loosely controlled from time to time (who likes globals anyway!).

I also took advantage of this new "feature" to add tests to the Client._connect, and the integration tests now run gevent if it's available.