Fix warnings and bump Rust edition to 2021
Fixes warnings and error in new Rust editions :
- Missing
dyn
keywork in trait objects - Missing name for parameters in function declaration
- Some trailing semicolons in macros
- Short field initialization when local variable name matches field name
- crate:: being required in
use
statement for imports relative to crate root