trunks: add cr50 vendor commands and DeclareTpmFirmwareStable

Implement DeclareTpmFirmwareStable() that for Cr50 invalidates
inactive firmware RW version, and for other chips is NOP.

For that, add support for sending arbitrary commands in general,
and cr50 vendor commands in particular, to TpmUtilityImpl. That,
in turn, required exposing the current transceiver from class Tpm.

BUG=chrome-os-partner:55667
TEST=Boot, login, check that the "invalidate inactive RW" command
     is sent. (Tested along with the corresponding changes in
     cryptohome)

Change-Id: I0afc9a4a8e9a76114463e27d06263a7351d743d4
Reviewed-on: https://chromium-review.googlesource.com/430283
Commit-Ready: Andrey Pronin <apronin@chromium.org>
Tested-by: Andrey Pronin <apronin@chromium.org>
Reviewed-by: Vadim Bendebury <vbendeb@chromium.org>
(cherry picked from commit aaae4181dca82b57fefdc047202f42b47e3037cf)
10 files changed