Should restart the queue if Redis recovers from an error

For example, if the Redis server daemon restarts, the node client library automatically reconnects. However, Bull doesn't listen on the errors which causes an exception to be thrown and either the application to exit (if uncaught) or require the user to set up a new bull instance.

This pull request emits any Redis errors from the bull instance and also attempts to restart the queue if Redis restarts.

Does this look good, or is there a better solution?