[sf] Add support for generic layer metadata to HWComposer and HWC2

HWComposer construction is slightly modified to make it easier to test.
Data is retrieved about the device on the call SurfaceFlinger makes
right after creaton (was registerCallbacks, now called
setConfiguration). This now includes obtaining the supported layer
metadata information from the HAL implementation.

Since getting capabilities is now no longer done by just construction,
the existing tests were adjusted to not expect the call, especially as
none of them were testing any variance in capabilities.

A HWC2::Layer::setLayerGenericMetadata function is also added to set
the metadata.

Tests are explicitly added for both retrieving the supported metadata
and for setting layer generic metadata.

Bug: 139747351
Test: atest libsurfaceflinger_unittest
Change-Id: I3e95be932d94d4e9f200b870acea965744c68d2c
12 files changed