We need to use the latest versions because older nodejs runtimes have
been deprecated and removed some time ago.
As a bonus, the latest version of the setup-python action supports
caching pip dependencies out-of-the-box (setting the appropriate cache
option) so we can eliminate a few of the manual steps to setup
dependency caching.
Finally, I also bumped the python version to 3.13 which is what
currently ships in the Arch repositories, not that it really matters.
The ubuntu-20.04 runner is no longer available. Switch to latest so that
we don't need to keep updating this as time passes, we don't depend on
anything for a specific ubuntu version.