mount-encrypted: finalize if keyfile missing
mount-encrypted: finalize if keyfile missing

If a system key is available (could read TPM NVRAM), but the "finalization
needed" file exists, it means that we are in the situation where either
cryptohome was interrupted, or the TPM was temporarily unavailable at an
earlier boot. In this case, it is up to mount-encrypted to perform the
finalization. Before, we were making the very bad assumption that the
keyfile was valid if a system key was found, meaning we would delete the
"finalization needed" file, leaving us with no way to find the encryption
key leading to an OOBE on the next boot.

BUG=chrome-os-partner:15960
TEST=daisy build, manual testing
BRANCH=None

Change-Id: Ifb6d74d8a38100e00d9a4597c25a71a6c33f806c
Signed-off-by: Kees Cook <50cb10d2be062154b17ab4d66a4eab34f1cf1c84@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/39883
Reviewed-by: Luigi Semenzato <5004afe206914bdd0a6fc6438682f9b308a36be6@chromium.org>
Reviewed-by: Elly Jones <1693f95ea06ee6d7b2276cb599c3f4f33a951d9c@chromium.org>
Reviewed-by: Will Drewry <72416dde44ea762d19e3a7a555e3b59ce98f8eea@chromium.org>
Reviewed-by: Jorge Lucangeli Obes <bc323d654c912a6c99763475eeb77a04da410a4a@chromium.org>

coreboot/vboot,geekboxzone/mmallow_external_vboot_reference,coreboot/vboot,acorn-marvell/vboot_reference,ionave/seismograph,ccaapton/vboot_reference,ccaapton/vboot_reference,acorn-marvell/vboot_reference,marineam/seismograph,geekboxzone/mmallow_external_vboot_reference,marineam/seismograph,ccaapton/vboot_reference,coreboot/vboot,geekboxzone/mmallow_external_vboot_reference,acorn-marvell/vboot_reference,ionave/seismograph,geekboxzone/mmallow_external_vboot_reference,ccaapton/vboot_reference,geekboxzone/mmallow_external_vboot_reference,acorn-marvell/vboot_reference,coreboot/vboot,ionave/seismograph,marineam/seismograph,marineam/seismograph,coreboot/vboot