Introduce a RUST_TOOLCHAIN_VERSION environment variable that gets used in ci.sh to decide on the compiler to use.
Use this variable when running variable on nightly (coverage) or build checks on each pr.
cargo check will now cover all feature cases with both MSRV and stable, which it was not doing. Fix the cargo check build with MSRV for certain options that were not being covered by fixing versions on the Cargo.lock file.