Updates encoding/decoding of optional metadata

... to always encode/decode the metadata type with a "is present"
value in order to be able to differentiate bad optional metadata from
unset optional metadata. The SetBadMetadata test in
VtsHalGraphicsMapperV4_0TargetTest.cpp expects that

gralloc->set(Smpte2086, <empty vec>)

returns Error::UNSUPPORTED. However, prior to this change,

android::gralloc4::decodeSmpte2086()

would return NO_ERROR as an empty stream was equivalent to an unset
optional.

Bug: b/207388558
Test: VtsHalGraphicsMapperV4_0TargetTest
Test: GrallocTypes_test
Change-Id: Ie47d3146f4e76c5c38919b776826d707e85aa438
1 file changed