@1.2::IServiceManager: listManifestByInterface

This API lists VINTF manifest HALs (those that are expected to be on
the device even if they are not currently running).

This API is being added for a couple of reasons:
- libvintf is not in the VNDK. This new API will allow vendors to read
  the vintf manifest and get the HALs which are expected to be on the
  device.
- more and more HALs are using dynamic lifecycles which means an API
  like this is increasingly useful.
- having an easy API like this helps ensure that vintf things are
  easier to get correct since users of this API will automatically
  get the correct configuration.

There are a couple of possible expected usages of this API:

    # running HALs
    R = listByInterface(IFoo::descriptor)
    # VINTF Manifest HALs
    M = listManfiestByInterface(IFoo::descriptor)

    # Lazy HALs that are not started
    ... = M - R

    # Getting all HALs on the device if some are lazy
    for i in M:
        ... = IFoo::getService(i)

Change-Id: I279a9048f27dac9f7ee6d3ea57d5842d64cadb3b
Fixes: 76108617
Bug: 66921961
Test: hidl_test
1 file changed