refactor: build menu rows and the radio mark as their own pieces

`menu_list` builds its rows through a helper and passes them to a single
`view!` as children, instead of pushing nodes onto a list from inside a
loop between two partial trees. Its root focusable comes back through a
node_ref like everything else.

The styled choice option's radio mark is a `radio_mark` component, which
leaves `choice_option` with one `view!` whose only branch is whether the
label is wrapped alongside a mark.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017W8YfdzDmZcR8A76jRjvZY
5be5b2bb6fBE3 Agent committed on 9/11/2026, 3:10:15 AMparent033ea99
2 files changedLine totals unavailable