Adds deterministic cooldown evaluation through Config.Evaluate.
- Accepts an explicit evaluation time.
- Returns whether a version is allowed, the selected cooldown, the availability time, and a typed reason.
- Keeps
Config.IsAllowedas the current-time shorthand. - Preserves permissive handling of unknown publication times and returns
ReasonUnknownPublicationTime.