* Turns out if a build is invoked with `--store` then the source
cleaning filter will observe paths rooted at the alternative store
which breaks out previous string handling (and results in incorrectly
ignoring files which should be included)
Crates from git repos are vendored in a flattened directory where each crate shows up at the root of the vendor directory. Since the vendoring step effectively breaks workspace structures, any crates which use workspace inheritance (e.g. package.version.workspace = true will fail to resolve.
To work around this we inspect the crate's workspace manifest (if it exists) and attempt to manually merge the values while copying the contents to the vendor directory.