trunks: Made TakeOwnership re-entrant

TakeOwnership is broken up into multiple smaller calls
with each call being fully re-entrant. If TakeOwnership
exits at any intermediate step, clients can call
TakeOwnership again and have it return TPM_RC_SUCCESS.

BUG=chromium:458589
TEST=unit
TEST=trunks_client --own (exit in the middle and recall)
TEST=trunks_client --regression_test (to ensure ownership was taken
correctly)

Change-Id: I16009bc187dcf6b153ef39955b4b69de511980c0
Reviewed-on: https://chromium-review.googlesource.com/265481
Tested-by: Utkarsh Sanghi <usanghi@chromium.org>
Reviewed-by: Darren Krahn <dkrahn@chromium.org>
Commit-Queue: Utkarsh Sanghi <usanghi@chromium.org>
13 files changed