Mismatch between clippy in CI and pre-commit

Clippy in pre-commit is configured differently than how it's run in CI. pre-commit silences a lot of warnings that end up causing CI to fail.

Configuration should be moved into Cargo.toml and both pre-commit and CI should use the same call, perhaps without the -Dwarning in pre-commit so users see the warnings that will cause errors, but can still commit without having to retry with --no-verify.