Resolve/Reject the client promise when the connection is made.

I noticed while running the unit tests that if Redis isn't available, the tests print an error message but continue on. This leads me to believe that in the event Redis isn't available in production, we'll start processing work and fail mid-way through when we try to issue a Redis command.

It seems like the `redis.client` method (which is called to by `command` to acquire a client from the pool) should `reject` the Promise if the connection can not be made. As a corollary, the Promise should not be resolved until the connection is actually ready.