wip
Add `Client`

This adds a basic `Client` for working with Redis for Qs. This
will handle all the low-level interactions with Redis. For now,
this includes adding and getting a job. For adding jobs, we use
the redis command `rpush`. This adds a job to the end of a list
in Redis. This will be used by a `Queue` and `Qs` main module to
add jobs (or events). For reading a job, this uses `blpop` which
will block until it gets a job from a set of lists. This will be
used by a daemon to wait on 2 lists in Redis, one for the queue
and one to act as a signal queue. This will work similar to using
an IO pipe and writing to it. This will allow Qs to immediately
detect signal changes when its stopped or restarted.