thread-safe Gearman client

re separating out individual data events: https://gist.github.com/rgarcia/e4da14e3204a91ef526b. In a lot of ways the job struct/interface is like `exec.Cmd`

re "but the gearman client needs to be able to modify the data/warnings and the status"--why is the client responsible for listening on the connection and modifying the job? Seems like something the job should be responsible for.