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

I've investigated the Error trace in https://github.com/OptimalBits/bull/issues/38 and found that Bull does not at the moment deal with a connection forcefully closed by redis. This PR implements the workaround suggested in https://github.com/OptimalBits/bull/issues/38#issuecomment-62458500 (and also fixes a subtle bug).

Please see commit messages for more information.