scripts/install.sh treated a system with any `uv` on PATH as "already
installed" (`command -v uv || command -v uvx`), then required `uvx` a few
lines later and hard-exited when it was absent. An old uv without the uvx
shortcut therefore passed the gate but could not satisfy the rest of the
script.
Gate on uvx instead, matching install-windows.ps1. A uvx-less uv now falls
through to the existing install/upgrade path (astral installer, with the
OS-aware manual-install hint on failure), which produces a working uvx.
Adds a test-stale-uv CI job that stubs a uvx-less uv on a curated PATH and
asserts the installer reaches the upgrade path rather than dead-ending.
Closes #1593