Catch interrupted signals (on select, specificall) in the connect loop

In the current build if the process gets a signal you get a backtrace like:

```
[ERROR   ] Unhandled exception in connection loop
Traceback (most recent call last):
  File "/usr/lib/python2.6/site-packages/kazoo/protocol/connection.py", line 522, in _connect_attempt
    [], [], timeout)[0]
  File "/usr/lib/python2.6/site-packages/kazoo/handlers/threading.py", line 250, in select
    return select.select(*args, **kwargs)
error: (4, 'Interrupted system call')
Exception in thread Thread-3:
Traceback (most recent call last):
  File "/usr/lib64/python2.6/threading.py", line 532, in __bootstrap_inner
    self.run()
  File "/usr/lib64/python2.6/threading.py", line 484, in run
    self.__target(*self.__args, **self.__kwargs)
  File "/usr/lib/python2.6/site-packages/kazoo/protocol/connection.py", line 466, in zk_loop
    if retry(self._connect_loop, retry) is STOP_CONNECTING:
  File "/usr/lib/python2.6/site-packages/kazoo/retry.py", line 123, in __call__
    return func(*args, **kwargs)
  File "/usr/lib/python2.6/site-packages/kazoo/protocol/connection.py", line 483, in _connect_loop
    status = self._connect_attempt(host, port, retry)
  File "/usr/lib/python2.6/site-packages/kazoo/protocol/connection.py", line 522, in _connect_attempt
    [], [], timeout)[0]
  File "/usr/lib/python2.6/site-packages/kazoo/handlers/threading.py", line 250, in select
    return select.select(*args, **kwargs)
error: (4, 'Interrupted system call')
```

This is due to the kazoo connection thread getting the signal and not handling the system call interrupt. It seems that your _socket_error_handling contextmanager covers that case, and with local testing it seems to have fixed the issue.