Add requeue.

This is useful when you want to put a job back on a queue
(e.g. to have it tried again later) without worrying about
potentially resurrecting a cancelled job.

@dlecocq -- we talked about this being `move` but I realized that there's no requirement that a different queue be provided and in our use case we are simply putting the job back on the same queue, so @benkirzhner  and I felt like it made more sense to call it `requeue` (it can obviously be used to move the job as well).
As discussed, this can be implemented more cleanly using the `EXISTS` command.