We have data showing that some modules builds fail in rare cases. We're therefore interested in handling sources of failure better, especially when it comes to modules. This patch takes us a small step closer to this by handling the return code of fs::remove in code that seems like it should. I haven't updated all ignored instances of fs::remove, I therefore can't mark it LLVM_NODISCARD for now.
This previous patch helps propagate errors: https://reviews.llvm.org/D63518
Will Out.error() still work after Out.clear_error()?