Add `Job`, handles converting to/from payloads

This adds a `Job` class that handles converting a name and params
to and from a payload hash. This will be built when adding a job to
a queue and will be used to parse a payload pulled out of redis.
The `Job` instance is passed down to the handler for use in
handling the background job. A `Job` also includes a `created_at`
that references the time it was added to a queue. This can be
used to detect when an action occurred as opposed to when the
background worker decided to finally handle the job.

@kellyredding - Ready for review.
@jcredding maybe subclass `ArgumentError` instead?