Library AllRefs implies tag inclusion; close the contract gap
Commit

The library docs and the unstable fetch CLI promised "every refs/*", but
BuildDesiredRefs and addPruneCandidates excluded tags unless IncludeTags
was set. The CLI sync/bootstrap wrappers papered over this by implying
--tags, but library callers and fetch --all-refs got a narrower scope
than the wording promised.
Move the tag-inclusion implication into the library so the contract is honest at every layer:
- BuildDesiredRefs adds source tags when IncludeTags || AllRefs.
- addPruneCandidates' tag-prune case fires under the same condition.
- replicateCanBootstrap matches.
Drop the now-redundant CLI bundling: sync/bootstrap no longer set IncludeTags from --all-refs because the library covers it. SyncPolicy. BestEffort stays orthogonal so callers can opt into per-ref warn semantics on a narrower scope.
Updated the planner test that asserted the old (wrong) "tag should not
appear without IncludeTags" behavior, and added a fetch CLI smoke test
verifying fetch --all-refs puts tag and notes refs into the wants
list without --tags being passed.
Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com Entire-Checkpoint: a0c571b71c5f