Fix nil pointer dereference panics

- Adds missing bail-out statements when unable to obtain connections to
redis in poller.
- Poller will never start unless an initial connection is obtained
- No workers will be spawned unless an initial connection is obtained
- Retries an initial connection in an endless loop (with pauses) until
  a connection is established or a kill signal is received
Retry job retrieval in poller
Use a redigo connection pool instead of a generic resource pool

The resource pool used didn’t support returning closed connections.
Doing so would result in “use of closed network connection” errors on
subsequent usages of returned connections. On the other hand, not
returning a closed connection would exhaust the pool and lock the poller
and/or workers.

This commit drops all indirections to redigo connections and pools and
thus gracefully handles intermittent network failures and restores.
Move poller initialization retry logic from within poller to Work()
Merge remote-tracking branch 'timehop/fix-nil-pointer-deref-panics'

Conflicts:
	goworker.go