Add "query" methods to worker pool, to check state of pool

This adds some "query" methods to the worker pool. This allows
querying the state of the worker pool and making decisions based
on it's current state.

This is being added for `Qs`, a gem for running background jobs
using Redis. Qs doesn't want to pull jobs out of Redis until a
worker is available to run the job. This way, if Qs is shutdown,
it shouldn't have a large number of jobs in memory that it has
to manage. To do this, it needs to be able to see if a worker
is available to handle a job. If so, then it can pull the job
from Redis and add it to it's in memory queue.