Add KeymasterBlob

keymaster_key_blob_t is a legacy keymaster type that represents
a memory buffer and comprises a pointer and a size. KeymasterKeyBlob
is a C++ wrapper around keymaster_key_blob_t that tracks the ownership
of the allocated buffer.

keymaster_blob_t (note the missing key) is a type that does the same
as the keymaster_key_blob_t, however, the pointer and size field
are named differently. I would like to have the same functionality
for that KeymasterKeyBlob provides for keymaster_key_blob_t also
for keymaster_blobl_t.

This patch introduces TKeymasterBlob, a template that can wrap
around both legacy types. KeymasterKeyBlob is now implemented
by means of the specialization

TKeymasterBlob<keymaster_key_blob_t>

and a new type, KeymasterBlob, is introduced which is implemented by
means of the specialization

TKeymasterBlob<keymaster_blob_t>

Both blobs are now also move assignable and constructable.

Test: VtsHalKeymasterV3_0TargetTest
Bug: 67358942
Change-Id: I96261791f1d8e40d28d74e11c25149fce0f73f97
8 files changed