* test(conan): add failing tests for wildcard-equivalent ranges in getNewValue
Add test cases for [*], [>=*], and [x] ranges with all three
strategies (widen, replace, bump). [>=*] and [x] currently crash
with TypeError in getNewValue.
* fix(conan): handle wildcard-equivalent ranges in getNewValue
Ranges like [*], [>=*], [x], and [] are all semantically "match
everything". parseRange() returns an empty array for these, causing
getNewValue to crash with TypeError when accessing properties on
undefined. Use semver.validRange() to detect all wildcard-equivalent
forms instead of checking only for '*'.
Refactors `getNewValue` logic to replace it with an optional
`getPinnedValue()` where rangeStrategy=pin. This way each versioning
module doesn't need to add and test extensive "pin" logic.
This should not be breaking, but out of an abundance of caution, we'll
mark it as such.
Moves datasource, manager, platform and versioning code from lib/ into new lib/modules/
BREAKING CHANGE: External tools must update paths to datasource, manager, platform and versioning