rustfmt hasn't been a preview for a while now. It still needs to
be installed separately because Travis uses the minimal Rustup
profile, which doesn't include it. Also use the minimal profile on
Windows for consistency and to speed up installation.
Unfortunately the published binary no longer works on Travis
unless the build happens on its bionic image, because the binary is
built in GitHub Actions using the ubuntu:latest image. Running in bionic isn't
guaranteed not to break in the future, so install from source and cache
the artifact to be sure.
Fortunately, cargo install no longer requires --force to update an installed binary
crate, so building from source and caching the result is simpler
than it used to be.
Also download a prebuilt binary from GitHub to speed up Travis builds.
The later 0.9.x and 0.10.0 release binaries seems to have been built
against a version of libssl that isn't available on Travis.
Error handling has changed, affecting the error variants LCI exports,
and macros are replaced by functions, so all the parsing code has been rewritten.