Re-run queue if the blocking client triggers an 'end' event

If redis sends a FIN packet to the socket open by the blocking client,
the socket triggers an 'end' event.
Although node-redis will try to reconnect automatically, any blocking
commands (including BRPOPLPUSH) in node_redis's queue will be flushed
and their callback will receive an Error message.
This commit adds a listener to the 'end' event which will restart
the queue.