Issue title: UnboundLocalError: local variable 'chunk' referenced before assignment
 Issue body: Hi,

I'm trying to implement a signal handler for SIGUSR2 and have applied the monkey patch from celery/celery#2615 ([this comment](https://github.com/celery/celery/issues/2615#issuecomment-207085293))

While SIGUSR2 is available for my purpuse using this patch, the `_recv()` implementation [here](https://github.com/celery/billiard/blob/master/billiard/connection.py#L427) actually doesn't handle EINTR.

Shouldn't the exception handler `continue` upon `EINTR`s?
 Comments: 
 Comment 0: Ah, that would make sense since we ported this from Python 3.4 and EINTR is handled automatically there now.

{'source': 'GithubIssues', 'repo_name_with_owner': 'celery/billiard', 'issue_id': 175484387, 'repo_stars': 354.0}