Refactor license add-on provisioning
What does this MR do and why?
Part of https://gitlab.com/gitlab-org/gitlab/-/issues/465546+
This MR was created to help split a bigger MR/change into smaller pieces.
This change is preparation for incoming changes around using more information from the license's add-on products. At the moment, only the quantity is used. With the incoming changes, all other info will be processed and stored within an add-on purchase record as well. To make the implementation easier, a couple of code places are refactored as part of this change.
MR acceptance checklist
Please evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.
How to set up and validate locally
A green test suite should be sufficient for these changes.
Edited by Corinna Gogolok