When update resolves a prerelease dependency, preserve the range style already
declared in the manifest in both the TypeScript and Rust implementations.
Newly added prerelease dependencies remain pinned exactly.
The TypeScript calcVersionRange serves plain update, re-add of a declared
dependency, and update --latest, so all three preserve the style. pacquet
routes those paths through a new calc_version_range helper mirroring it,
replacing the duplicated decision (PackageVersion::serialize is removed).
Add shared-fixture unit and end-to-end coverage for the prerelease update path.
Fixespnpm/pnpm#7002.
---------
Co-authored-by: Zoltan Kochan <z@kochan.io>