This turns on clippy checking and also fixes all lints in the code.
Many lints are obvious improvements. Only a small number are slightly annoying, so I think overall worth having a vanilla default config.
Fixes the warnings remaining in the code, which should in turn let us check that in CI.
Also checks the optional features, which are easy enough to break.
This patch sets up very basic CI (right now just cargo fmt) but more importantly compiles shaders in a GitHub Action.
Any PR to branches other than main will run shader compilation. Any push to the dev branch will run shader compilation and then merge to main.
Closes#177