Adds an expandable panel beneath the resolved Namecoin row that lists the prior Nostr pubkey values the name has pointed at on chain. Two new toggles in Namecoin Settings control what's shown — both default to off:
* **Current owner's previous values** — values published by the active owner of the name (no expiry boundary between them and the current value). Lower-risk: previous states of the same identity.
* **Earlier owners (after expiry)** — values from registrations on the other side of a name-expire gap. Different people. Each gap is marked with an explicit "Name expired — registered again …" divider so the user can't read them as continuous identity.
History is currently sourced from a deterministic mock provider (`MockNamecoinHistoryProvider`) that returns six entries per name — three under a single 'current owner' ratchet and three earlier registrations each separated by an expiry gap. This lets the UI ship ahead of the on-chain `name_history` extractor; swapping the provider will keep all UI/settings code unchanged.
### Android + desktop
* commons: `NamecoinNameHistory` data classes + `filterByToggles` slicer.
* commons: `MockNamecoinHistoryProvider` (deterministic 6-entry fixture).
* commons: `NamecoinSettings` gains `showHistoryWithinCurrentOwner` and `showHistoryAcrossExpiry` (default false on both surfaces).
* Android `NamecoinResolutionRow` renders the panel under the resolved row; persists the two toggles via `NamecoinSharedPreferences`.
* Desktop `NamecoinPreviousValuesPanel` + `SearchScreen` call site; persists via `DesktopNamecoinPreferences`.
* Both `NamecoinSettingsSection` composables gain the two switches.
### Tests
* `MockNamecoinHistoryProviderTest` covers entry count, ordering, determinism, case-normalisation, expiry-gap layout, hex shape.
* `NamecoinSettingsTest` covers default-off + `anyHistoryEnabled`.
* `filterByToggles` tests cover both-off / both-on / within-only / across-only / no-gap edge cases.
* **Current owner's previous values** — values published by the active owner of the name (no expiry boundary between them and the current value). Lower-risk: previous states of the same identity.
* **Earlier owners (after expiry)** — values from registrations on the other side of a name-expire gap. Different people. Each gap is marked with an explicit "Name expired — registered again …" divider so the user can't read them as continuous identity.
History is currently sourced from a deterministic mock provider (`MockNamecoinHistoryProvider`) that returns six entries per name — three under a single 'current owner' ratchet and three earlier registrations each separated by an expiry gap. This lets the UI ship ahead of the on-chain `name_history` extractor; swapping the provider will keep all UI/settings code unchanged.
### Android + desktop
* commons: `NamecoinNameHistory` data classes + `filterByToggles` slicer.
* commons: `MockNamecoinHistoryProvider` (deterministic 6-entry fixture).
* commons: `NamecoinSettings` gains `showHistoryWithinCurrentOwner` and `showHistoryAcrossExpiry` (default false on both surfaces).
* Android `NamecoinResolutionRow` renders the panel under the resolved row; persists the two toggles via `NamecoinSharedPreferences`.
* Desktop `NamecoinPreviousValuesPanel` + `SearchScreen` call site; persists via `DesktopNamecoinPreferences`.
* Both `NamecoinSettingsSection` composables gain the two switches.
### Tests
* `MockNamecoinHistoryProviderTest` covers entry count, ordering, determinism, case-normalisation, expiry-gap layout, hex shape.
* `NamecoinSettingsTest` covers default-off + `anyHistoryEnabled`.
* `filterByToggles` tests cover both-off / both-on / within-only / across-only / no-gap edge cases.
3