Allow modification of task on fail and allow customization of the frontend

When tasks were failing the `res` object on the callback wasn't being used, so I used it to update the task with new data. So a user could use it to keep track of the number of times a task failed, or try a modification of the task based on different fail criteria. 

Now the frontend exposes `app` for customization, for example adding basic authentication: 

    var 
        frontend = require("./frontend"),
        express = require("express");

    frontend.app.use(express.basicAuth("user", "pass"));

    frontend.listen(3000);


P.S. great module, super simple compared to a lot of the other node redis queues available