Refactor TPM calls into vboot wrapper

Try #2, now that ARM has the fix from http://gerrit.chromium.org/gerrit/4667

This cleans up the TPM calls inside vboot_reference.
* TPM calls share mode code between boot modes.
* Better handling for TPM_E_MUST_REBOOT, particularly in recovery mode.
* TAB screen shows current TPM versions.

No changes required to the wrapper API; these changes are internal to vboot.

BUG=chromium-os:18084
TEST=make && make runtests; built for both alex and tegra2-seaboard

Original-Change-Id: I2a52066f2889210af83409872b10f9d6380470af
(cherry picked from commit da55560cddcf7a1aa8a881cdf52792a21a01e766)

Change-Id: I120797145772116f09b8125b9e56fdbb11dc16b3
Reviewed-on: http://gerrit.chromium.org/gerrit/4671
Tested-by: Randall Spangler <rspangler@chromium.org>
Reviewed-by: Randall Spangler <rspangler@chromium.org>
diff --git a/firmware/linktest/main.c b/firmware/linktest/main.c
index 16ba3ab..71d7ba1 100644
--- a/firmware/linktest/main.c
+++ b/firmware/linktest/main.c
@@ -30,11 +30,9 @@
 
   /* rollback_index.h */
   RollbackS3Resume();
-  RollbackFirmwareSetup(0, 0);
-  RollbackFirmwareRead(0);
+  RollbackFirmwareSetup(0, 0, 0);
   RollbackFirmwareWrite(0);
   RollbackFirmwareLock();
-  RollbackKernelRecovery(0);
   RollbackKernelRead(0);
   RollbackKernelWrite(0);
   RollbackKernelLock();