Remove reconnect logic from worker.

introduces a new class, Client, which will handle Redis stuff from
now on. As such, it needs the reconnect logic.
Add tests around #reconnect for Client
Small refactoring on Client#reconnect

1. We don't need to check if we've already reconnected to reconnect, the redis gem handles that case
2. Let's not increment + test on the same line
3. if/else becomes if for simplicity
The client now takes a reference to logger

We don't want to reference the global singleton logger, so
we'll take it in the constructor.

This also means the default one in Worker#initialize needs
to inject the global logger.
Remove unneeded legacy test around reconnect.

Now that we're testing this behavior in the client,
we don't need this mega-gross, complicated, flaky test.
Throw our own ConnectionError.

Instead of bubbling up the Redis error, we want to throw our own.

Also wrote documentation that is better for the reconnect method.
Rename Client -> Backend
Rename Backend#backend to Backend#store, following I18n's naming
Merge pull request #958 from oliverbarnes/client_refactor

Client refactor
depend on Backend for redis rather than Config
replace instances of redis with backend.store

Now we don't have a global Redis reference any more.
Adding a default queue.

By default, Resque will try to work on the 'default' queue. Seems
simple.

I don't know how to write a good test for this, though.
Revert "Adding a default queue."

This reverts commit eb4f03847a0ef417f435eba72a9bbe20d938dd01.

Causes test failures: https://travis-ci.org/resque/resque/jobs/6459784
Use Kernel.warn instead of puts
Adding test for worker comparison.
Merge pull request #962 from strzalek/puts-to-warn

Use Kernel.warn instead of puts
Worker requires Resque, client mock usually not needed.
Revert "Worker requires Resque, client mock usually not needed."

This reverts commit 09c5a1d82ea3026010c8e6c129444b6a19230e52.
typo. fix failing test.
Adding pid test, introducing subject for client mock.