Add support for forcing a platform using a constraint This commit adds support for aligning a platform to a forced version using a constraint. Similarly to the dependency case, this allows forcing the platform, but also implies that the members of the platform are _also_ forced.
Support enforcing a platform using a direct dependency on the platform Currently this _only_ sets a **force** flag on the platform dependency transparently. There might be the need to do more in the future, in particular as soon as we integrate with external platforms (BOMs) published at coordinates representing different types of components (library and platform).
There is a consequence in using a dependency, that is the published POM file will be invalid for Maven consumers.
It's worth noting that in this context, "force" is stronger than a "force" on a regular dependency: because it's a virtual platform, the engine will make sure that the edged from the platform to its components are forced too. In other words, the platform is forced **and** its components.
Note, however, that this is **NOT** true if the target platform is a published component: in this case, the platform is forced, but the components of the platform use the rules of the published platform. If the edges are not forced, the component versions may be upgraded.