Import POM files as different variants This commit implements solution 6 of #4422, by importing POM files using different variants. By default, a POM file will be imported as 6 different variants:
- 2 libraries (runtime and compile) - 4 platforms (runtime and compile, regular and enforced)
This implies that a dependency on a BOM will now be intepreted as a dependency on a library, whereas a dependency on a BOM expressed using the `platform(...)` or `enforcedPlatform(...)` methods will be interpreted as importing the platform component published at the same coordinates.
This commit doesn't remove optional dependencies for Maven, but reimplements how the dependencies are shuffled in different variants. The dependencies found in a dependency management block are no longer considered optional. Instead, they are properly marked as constraints. However, they are only visible if using the experimental flag, **and** using the platform variant.