Allow a custom (free) repository color master
- RepositoryColorChoice gains a `.custom(TintColor)` case alongside the named presets, with backward-compatible Codable: presets still encode as their bare case-name string, custom encodes as a keyed object. - TintColor is now Hashable so the choice stays Hashable. - The repository color picker adds a trailing iOS-style rainbow wheel: a solid rainbow dot until a color is picked, then the chosen color in the middle with a small gap to a thin rainbow rim. Tapping opens the system color panel via a small ColorPanelController (NSColorPanel target/action), seeded with the current color. - Tighten the swatch row spacing (8 → 6). - Expand RepositoryColorChoiceTests for preset + custom round-trips and legacy-string decoding.