release_stages: Split Paygen -> Signing, Paygen stages.

This creates a SigningStage that must be run before the Paygen stage to
wait for signed images to be uploaded. This means that signing errors
are easily distinguished from Paygen errors on the waterfall.

The signing stage signals to Paygen with the board attribute
'signed_images_ready' as soon as all boards are signed and ready.

We don't start Paygen for any channels until all channels are
signed. And won't run Paygen for any channels if any channels get a
signing failure (which is a regression).

BUG=chromium:588282
TEST=run_tests

Change-Id: I73e180a728d097353117a54009c39b194f157c19
Reviewed-on: https://chromium-review.googlesource.com/332275
Commit-Ready: Don Garrett <dgarrett@chromium.org>
Tested-by: Don Garrett <dgarrett@chromium.org>
Reviewed-by: Matthew Sartori <msartori@chromium.org>
(cherry picked from commit a982dde9d6e249bed8309be9521e2ea099e1f12f)
Reviewed-on: https://chromium-review.googlesource.com/337056
Reviewed-by: Bernie Thompson <bhthompson@chromium.org>
Commit-Queue: Bernie Thompson <bhthompson@chromium.org>
Tested-by: Bernie Thompson <bhthompson@chromium.org>
3 files changed