PackageGroup struct with description + package list. Groups are defined
in [[package_groups.NAME]] TOML sections and resolved by
resolve_package_groups() during Config::from_file(). Supports nested
groups (groups referencing other groups) with cycle detection.
Explicit [packages] entries override group membership.
Adds PartialEq derive to PackageConfig for dedup during merge.
3 unit tests: nested groups, explicit override, no-groups compat.