Implement `Route#run`

This adds the logic for running a route. It will build and run a
`QsRunner`, passing the job, the job params and the daemon data's
logger to it. The route was implemented before the runner or job
so it was left as a todo. This is needed to run a job handler when
a job is pulled off of a queue.
Merge pull request #33 from redding/jcr-route-run

Implement `Route#run`
Add `PayloadHandler`, processes a serialized payload

This adds a `PayloadHandler` which handles all the logic for
processing a serialized payload. When run, it parses the serialized
payload, builds a job, finds a route for the job and then runs
the route. The `PayloadHandler` also handles logging, catching
errors and timing how long it took to run the job. When an error
occurs, the exception, daemon data and the job are passed to an
error handler which is run. This allows users to report errors or
do other special behavior if needed.

Finally, this also includes a `Payload` module that handles
encoding and decoding a payload. Qs uses `Oj` to convert a payload
into and out of JSON.