Oxidise part of the text rendering
This is a reimplementation in Rust of some part of our text rendering, as outlined in #2886.
I haven’t measured performances, if anyone is interested please do so, the function should be neatly self-contained.
The CI part is working, but very inefficient, it’s downloading the entire toolchain four times on every push, and doesn’t cache any of the build artifacts, this should probably be changed at some point in the future.
Fixes #2886 (partly).