In order to preserve the source(s) of errors, `anyhow::Context` is used instead of propagating errors via `Result::map_err()` and / or `anyhow::format_err!()`. This makes it possible to access e.g. an underlying `io::Error` or `nix::Errno` etc. that caused an execution path to fail. Certain usages of `anyhow::bail!()` are also changed / replaced in order to preserve context. Signed-off-by: Max Carrara <m.carrara@proxmox.com>