Add `Queue` and `Route`

This adds a basic `Queue` and `Route`. These will be used to
define queues and add routes to them. The queue is where job
routes are defined and also knows its redis key. This will be
used when adding jobs to the queue and reading jobs that need to
be processed. Routes are a name and a handler class name. When
a route is validated, the handler class name is constantized.
This will be done when a daemon is started so it can quickly route
and run jobs when they are pulled off of redis.
Merge pull request #23 from redding/jcr-queue

Add `Queue` and `Route`
Add `Logger` and `NullLogger`

This adds a `Logger` utility and a `NullLogger`. These will be
used to handle summary and verbose logging. This uses a null
pattern depending for whichever logging is not "turned on". In
verbose mode, the summary method returns a null logger which will
accept all the logging calls but won't do anything with them. When
in summary mode, this is reversed.
Merge pull request #25 from redding/jcr-logger

Add `Logger` and `NullLogger`
Update and simplify `Process`

This updates and simplifies the `Process` class. It removes all
the signal logic it had as this is now handled by the
`ProcessSignal`. This also removes the `PIDFile` logic that was
an internal helper in the file. It is now its own separate file
that it just requires. The `Process` is now only about running
a daemon and handling restarting it.

This also removes the tmp process file and switches the cli to
using the real one. This was a temporary placeholder while logic
was being reworked.
Merge pull request #24 from redding/jcr-process

Update and simplify `Process`
Add `DaemonData`

This adds a `DaemonData` class which handles "compiling" a daemons
configuration. This is done for speed and to provide a simple
object for passing around the daemon configuration. This provides
methods for easily looking up a queue and route, which will be
used to run a job handler. The daemon data also provides a the
redis configuration which will be used to build a redis connection
when the daemon is run.
Add Redis configuration and connection

This adds configuring redis for all of Qs and also adds a utility
for building a redis connection. Qs will build a redis connection
when init which it will use to add jobs and publish events. Daemons
will also build redis connections for pulling jobs off of a queue.
Daemons will also use the global Qs redis configuration for
building their connection.
wip