Ignore builds once they have been canceled

This change causes the gearman launcher to completely ignore builds
after the stop job request has been sent.  This should prevent
them from updating build status with confusing results.  It will
also help us avoid restarting canceled builds in a subsequent
change.

Change-Id: Id31bcbfb6f24a7ec9f5f0a776d7d2c30f36685b4
Re-launch a job if the worker fails to run it

If a job is complete with no build result, it has failed to
run to completion.  In this case, discard the previous build
and launch a replacement (in the next run of the queue processor).

Change-Id: Ib8fc245a5becb1e7deb13f1ea0721fdb6ceb9f6f