Update Connection class to use the iterator protocol.

Simplifies the syntax in the injector a tiny bit.
Simplify the WorkerCollection a bit.

It now has no concept of which worker classes are out there, just keeps
track of a bunch of a single class and that's it.  The Master class is
updated to have two separate collections one, one for injectors and one
for consumers.
Update workers to respawn if not winding down.

Updates the resiliency in a big way, if a child process crashes during
normal operation it'll be replaced.

Doesn't guard against death-rebirth-death thrashing, however.
Remove the 'ready' state as it's no longer needed.

Consumers pull in jobs from redis directly so there's no "ready" state
involving sitting in an IPC queue any longer.