We should add GitHub Actions to cover everything build.sh does:
- Code formatting checks with rustfmt
- Static analysis with cargo check and clippy
- Building all targets
- Running tests, including doc tests
- Generating documentation (though right now we don't publish it)
- Running test coverage with cargo-tarpaulin