is there an advantage to using a set of class objects instead of just a list of job events to trigger? e.g.

```coffee-script
client.registerTask 'worker_name', [
  { event: 'data', args: [1] }
  { event: 'data', args: [2] }
  { event: 'complete' }
]
```

you could add more params to event specs, like a time (in ms offset from job creation) to trigger them.

Also `registerTask` feels like a strange name to me. Maybe `intercept[Submit[Job]]` is a better name, since it seems to be intercepting/stubbing calls to `submitJob`.