fix(ci): pin serde_json to avoid zmij dependency
All versions of zmij use std::hint::select_unpredictable which requires
Rust 1.84+. The s390x musl cross-compilation container uses an older
Rust version.
Pin serde_json to <1.0.147 since that's when zmij replaced ryu as the
float-to-string algorithm.
Avoid double-caching when ccache is installed in PATH
On Linux, ccache is typically installed in $PATH as /usr/lib64/ccache/g++
or similar. If we keep it there, all compilations will be cached by both
ccache and sccache.
While the user could easily disable ccache with CCACHE_DISABLE, it's
reasonable to assume many will forget and will have their disk space
doubly consumed by both caches. Better to recognize this and disable
ccache under sccache.
This patch does this by removing the ccache binary paths from $PATH.
Fixes #2519