Split publishing of results into a separate daemon
We have been having reliability issues on s390x and ppc64el, and some evidence that points to the publishing of results. By separating running jobs from publishing their results, this should ease debugging connectivity issues, while keeping the results around so that they can be published later when the issue is solved.
The protocol between the worker and the publisher is very simple: the worker will copy the results tarball in the designated results dir, and after that will create a matching stamp file. The publisher waits for events on stamp files, and tries to publish the corresponding results file.
The publisher will try publishing at most 3 times, with a delay of 5 seconds between each attempt. On failure, the publisher will try again later (e.g. when new results arrive).
Another property of this new design is that regardless of how many workers a host is running, there will be a single process actually pushing the results back to the master.