Use the new unstable meson cargo support. This simplifies the
meson.build script and allows to use crates such as clap that require
picking up features from Cargo.toml.
This also allows us to not embed thiserror in subprojects, and instead
use a wrap file with a custom meson.build and some patches to make it
compile without running its build.rs script.
The new version of mon fixed the SeparatedBy combinator to not allow
trailing delimiters. This broke the Depend expr parser, because the
exprs are padded with whitespace. Using the new
SeparatedByWithTrailing combinator fixes this issue.