feat(repo-appearance): add Repo Settings to shelf spine context menu
Right-clicking a spine now exposes a "Repo Settings" entry alongside
the existing close-book action — same destination the sidebar's
ellipsis menu reaches via `repositoryManagement.openRepositorySettings`,
just one more entry point so users in shelf mode don't have to bounce
back to the sidebar to retint a repo or import a new icon.
- ShelfSpineView gains a non-optional `onOpenRepositorySettings`
callback. Every book has a repo, so unlike `onCloseBook` (closable
only when a book is open) there's no nil case to guard.
- bookContextMenu lays out as: `Repo Settings` first, divider, then
`Close Worktree`/`Close Folder` (when applicable). Settings goes
to the top because it's the non-destructive primary action.
- ShelfView wires the callback to
`.repositoryManagement(.openRepositorySettings(book.repositoryID))`
on its existing `RepositoriesFeature` store — same dispatch path
the sidebar uses.