Kue - split into jobs

/cc @matthew-andrews @commuterjoy 

Use kue to split the parts of the app into separate jobs, (most of which) can be scaled up.
Personally I wouldn't pass complex data structures between the jobs. Think of it like a unix pipe where you just want each job to process a flat array of instructions. It's more scalable this way - consider one job that ends up sending 20 HTTP requests Vs. twenty jobs that send one each. Which one can be parallelised better? Also less bother if one fails in isolation. So keep everything atomic IMHO. 

```
message { to => ..., uuid => ...,  item => ... }
message { to => ..., uuid => ...,  item => ... }
message { to => ..., uuid => ...,  item => ... }
```