tpm_manager: Port to brillo and enhance NVRAM interface.

This CL includes a set of changes required to run tpm_manager on Brillo.
- Android.mk
- Abstract IPC mechanism and add support for binder
- Combine protobufs into a single file
- Enhance the NVRAM interface for Brillo
- Rewrite the NVRAM implementation to be flexible enough for the new
  interface
- Enhance the tpm_manager_client for the new NVRAM interface
- Implement TPM 2.0 initialization logic that was missing
- General cleanup, including scoped_ptr -> std::unique_ptr

BUG=b:25360511
TEST=builds on Brillo and ChromiumOS, unit tests, manual tests

Change-Id: Ib9c41c75f570187d60399639bd539d6a107ef944
75 files changed