Provide JSON formatted metadata for each component
Currently oi-userland relies mainly on printing values from Makefile variables or calling pkgmogrify for listing:
- supplied packages,
- required packages,
- provided paths,
which is extremely time consuming when collecting data in every component.
For instance, on my machine it takes 18 minutes in serial to build a mapping between component fmris and directories while it takes only a few seconds if metadata is pre-generated in a JSON file.
The metadata can be also used for dependency resolution and tracking updates of each component using third-party online services (pip, dependabot.com, opam, ...).
Since bass-o-matic provide such logic in BassComponent the class should be extracted to factor the implementation.