Added auto reconnect while listening.

The function signature is now: `cumin.listen(queueName, autoReconnect, handler)`. If `autoReconnect` is a truthy value, then handlers are attached to both the block and the non-blocking client, so when a Redis connection drops, the process won't exit. In addition, when the blocking client reconnects, it restarts listening for items from the queue. This is still backwards compatible with old code, and should have no effect on existing code that depends on cumin.

I haven't added any tests for this functionality (I didn't want to expose the Redis clients just for testing), but I would be happy to add them if you have a suggested way of doing it.