* Refactor SpriteCache and animations
- Animation frames are now enumerated
- Renamed the `Sprites` trait into the more apt `Drawable`
- Moved animation to a default impl on `Drawable`
- Added the Cthulhu invader
- Clarify that `World::step_invaders()` is only needed for handling the invader grid
- Renamed `Cannon` to `Bullet`
* Improve readability of some `SpriteCache` uses.
* Enable clippy in CI
- Removed beta and nightly channels to prevent build breakage
- Fixed some lints noted by `pedantic` and `nursery` level (but not denying these levels by default)
- Accepts a closure (factory function) which itself accepts references to the `wgpu` instances needed for rendering
- This solves a need for creating `RenderPass` objects with a lot of `Option` types and trying to update them dynamically after the fact
- In other words, this is an RAII implementation
- `RenderPass` objects are created during the `PixelsBuilder` build stage
- It should prevent patterns where half-created `RenderPass` objects are necessary
* First pass at CI support
* Fix MSRV (required by wgpu)
* Winit requires MSRV 1.36.0 on Linux, add rustfmt to CI, add CI badge to README
* Don't forget to install rustfmt
- The example app generates a scaled version of pixel Ferris as a test.
- TODO:
- Pixel aspect ratio is still unsupported
- The `RenderPass` trait is incomplete