Switch to using redis PubSub for sending results and telling when jobs are done.

I believe this should solve some of the problems we've been having with SGE telling us jobs had finished when they hadn't and things like that.

(This is the same as a previous PR, but this will merge into develop instead of master).