Notable changes:
- Remove explicit workspace and state construction by the user. This greatly improves Rust ergonomics (see [Zulip](https://reform.zulipchat.com/#narrow/stream/364659-announcements/topic/rust.20ergonomics)) and is one of the final milestones for a Symbolica 1.0 release
- Introduce linear algebra and matrix manipulation
- Performance improvements for rational polynomial arithmetic
- Computational graph generation with C++ output for dependent expressions
- Add numerical integration state importing and exporting for easy use on HPC clusters
- Add convenience methods in Rust that allocate and ones that recycle memory, i.e. `expand()` vs `expand_into(&mut atom)`