saftey for jobs with mutliple callbacks

This PR will harshly handle jobs / plugins which call their callback more than once. Before now, a poorly written job could cause many problems, including recursion, working more than one job at a time, and data loss.

```javascript
"badJob": {
  perform: function(a,b,callback){
    callback();
    callback();
  }
}
```