assemble_vintf: move logic to CompatibilityMatrix::combine

... that combines <hal> and <xmlfile> elements of a list
of comp matrices.

* All required HALs at deviceLevel will be required in output matrix.
* All HALs at level > deviceLevel will be optional in output matrix.

The logic is also improved in the following ways:
* <xmlfile>s are also handled
* <hal>s and <xmlfile>s are moved to the "unspecified" matrix (that has non-hal
  / xmlfile information)

Test: libvintf_test

Bug: 69636193
Change-Id: Ifdc2227d1823840c0303ce6476ffa4b542e04e12
3 files changed