[silverwood] Add a jj-colocated-direnv-unsafe checkout mode + a `modes` subcommand master
CheckoutMode::JjColocatedDirenvUnsafe clones like jj-colocated, then runs `direnv allow` on the checkout (a no-op when the repo has no .envrc) so a frontend can run agents inside the checkout's own direnv environment. The clone is shared between the two modes; only the post-clone step differs. The variant is additive (existing docs keep checkout_mode "jj-colocated"), so there is no DOC_SCHEMA_VERSION bump. `direnv` is bundled onto the wrapped binary's PATH. Also adds `silverwood modes` — a pure-metadata JSON listing of the available checkout modes, handled before the forest is opened — to drive a frontend picker. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019bPvUMkrqtQKKMBADjPx5g