Improve the Rust build configuration used by sanitizer and fuzzing workflows.
This change adds three pieces of support:
- require a nightly Rust toolchain whenever `-Zsanitizer` is present in `RUSTFLAGS`, since Rust sanitizer support is unstable
- fail early when `-Zsanitizer=memory` is requested for an unsupported Rust target instead of surfacing a later Cargo ABI mismatch
- rebuild the Rust standard library with `-Zbuild-std` for MemorySanitizer so `core` and the rest of `std` use the same sanitizer ABI as the project crates