This will make it easier for contributors to understand the file layout,
at the cost of said layout containing several more nested directories.
I will personally appreciate not having to remember to look for
`root.rs` instead of `main.rs`.
I also renamed the test targets so that they do not *all* share the
superfluous suffix “-test” (test targets live in a different namespace
than other target types and packages, so the name can presume that it
is always known that they are tests).
The Naga snapshot data sets `naga/tests/{in,out}` have been left in
their original positions.
* chore: remove `std::mem::*` imports now unnecessary with `REPO_MSRV`
`std::mem::{size,align}_of{,_val}` was added to `std::prelude` in Rust
1.80; see
[`rust`#123168](https://github.com/rust-lang/rust/pull/123168/).
* refactor(benches): s/once_cell::Lazy/std::sync::LazyLock
Weaken our dependence on the `once_cell` crate by using functionality
from `std` instead that was upstreamed from `once_cell`, this time with
what's available in Rust 1.80+.
It's not yet possible to eliminate this dependency entirely, but do what
we can with `REPO_MSRV` for now.
* chore: remove unnecessarily `allow`'d lint rules under `REPO_MSRV`
* chore: migrate easy `allow`s to `expect` under `REPO_MSRV`
Remove or `expect` clear-cut `allow` statements that were easy for me to
figure out.
* chore: `warn` on `clippy::allow_attributes` under `REPO_MSRV`