test(permissions): Allow+Remember coverage; settings rows grouped by origin
Two follow-up polishes on top of Phase 5:
1. **Allow+Remember test path** — the symmetric counterpart to the
existing Deny+Remember test. Drives the prompt → Allow with
"Remember this decision" checked → opens a fresh page-host on the
same origin → asserts no prompt appears AND the geolocation
promise does NOT reject with PERMISSION_DENIED (proving the stored
allow short-circuited the prompt the way the stored deny did).
2. **Settings rows grouped by origin** — the renderer now sorts by
origin first, then permission within origin, so every saved
decision for `https://example.com` sits adjacent in the list.
Backend `listDecisions` returns rows in `key`-order
(`{permission}:{origin}`), which scattered same-origin entries.
New sort happens in `refresh()` before appending to the list.
Removes the click-around-the-list friction for the common
"revoke everything I gave example.com" workflow.
Tests:
* `tests/desktop/permission-prompt.spec.ts` 6/6 (was 5; +Allow+
Remember).
* `tests/desktop/permissions-settings.spec.ts` 5/5 (was 4; +sort-
by-origin assertion that seeds in scrambled order and verifies
the rendered rows group by origin).
No backend changes; renderer + test additions only.