vboot: integrate BROKEN screen recovery request logic into VBSLK

CL:1940398 brought us towards the goal of deferring clearing
recovery requests until kernel verification stage.  However,
now we are modifying recovery requests from multiple locations
in kernel verification code -- namely, also on the BROKEN screen
in UI code.

Integrate the logic into a function called vb2_clear_recovery to
be called from VbSelectAndLoadKernel.

Add tests to ensure that recovery requests get properly updated
*before* entering the UI.

BUG=b:124141368, b:35576380
TEST=make clean && make runtests
BRANCH=none

Change-Id: I5b0f4f7556c045ccc0d0739acc2668905a2a93e9
Signed-off-by: Joel Kitching <kitching@google.com>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2044954
Tested-by: Joel Kitching <kitching@chromium.org>
Reviewed-by: Julius Werner <jwerner@chromium.org>
Commit-Queue: Joel Kitching <kitching@chromium.org>
7 files changed