- used `syn::parse_quote!` instead of constructing `syn` structs
directly. unsurprisingly, makes a world of difference!
- code is, like, 1k lines shorter now
- moved tests into dedicated crate
- tweaked the tests even more, to represent complete lack of dependency
on external crates
- now explicitly depending on `simba`
- now using `simba/libm` feature. This should always provide users with
required implementations for `f32`/`f64`, while falling back to `std`
when possible, and using `libm`, if explicitly required (depend on
`simba/force_libm` feature to do that). kudos to `simba`!
(that's a massive rewrite!)
This change might seem random, but it, in fact, simplifies usage A LOT.
Now, `Scalar` type is **determined** by model, which is what should
happen in the first place.