Reduce package metadata table on-disk footprint
### Background
Before license compliance can be on by default and the sync of package registry in the monolith enabled (https://gitlab.com/gitlab-org/gitlab/-/issues/405028), the on-disk size of the tables needs to shrink. There are many reasons for this but one of the main ones is for self-managed rails instances which do not have enough disk space for this data.
Currently we have:
* Tables only: ~12GB
* Indexes only: ~14GB
* Total : ~26 GB
### Proposal
The [research spike](https://gitlab.com/gitlab-org/gitlab/-/issues/407454) for this epic determined the lowest hanging fruit to be through deduplication of the current dataset.
This is best done via denormalizing and removing the need to use the 2 join tables `pm_package_versions` and `pm_package_version_licenses`. Instead all license data will be stored in `pm_packages` under a jsonb `licenses` column.
The estimated new dataset size is estimated to be <1GB which can definitely fit in the smaller self-hosted instances.
## Outline of work to be done
The work to be done concerns the monolith only and roughly involves:
1. update the database
2. updating sync to "compress" and store data in this column
3. updating sbom component lookup to query the new dataset
### Additional work
This change will deploy on both new and old instances. For new instances only the new dataset needs to be populated. But for old instances, results will start coming up empty once the FF flips to the new storage. Until the new dataset is fully imported, data will be missing and will look like a bug for users that already have license compliance turned on.
Thus we also need to:
1. keep the old dataset until a later milestone
2. create a fall-through when doing the lookup to search the old dataset if the new dataset gives a "miss"
epic