Redmine #5557: Fix promises wrongfully reported with kept status.

We need to swap the priority of the promise SKIPPED and NOOP states.
SKIPPED should have higher priority when calculating promise status
because most promises start out with NOOP status, and SKIPPED is
something they receive later when they discover that their promise
lock cannot be obtained because they have already run. If SKIPPED has
the lowest priority, then the combined result will almost always be
KEPT, so this fix avoids that.

(cherry picked from commit 1cb35d8c56a1effd081dc856b7ae2722ac4ed2a8)