Add `MutableVersionConstraint.require(version)` By default, a dependency like 'org:foo:1.0' defines a 'require' version constraint.
With this change, it is also possible to set the 'required' version for a dependency from within `Configuration.withDependencies` or a component metadata rule. This brings 'require' on par with 'prefer' and 'strictly' for the purposes of configuration.
Ensure that 'preferredVersion' always provides a useful value Recent versions of the build scan plugin depend on `VersionConstraint.preferredVersion` to return a string representation of the version constraint. This was broken with the recent introduction of `requiredVersion`, where `preferredVersion` only returned a value when explicitly set with `prefers(version)`.
This change restores the previous functionality: a `requires` version constraint implies a `prefers` constraint, and a `strictly` constraint implies a `requires` constraint.