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 require 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.