This is in preperation for dynamic import (#1789), which is more easily implemented when errors are dynamic.
A lot of its functionality is unused still, but the goal it to slowly migrate logging functionality to it. There is also a useful progress bar which can be ported over later - it depends on this module. 4c1fa54d10/src/cargo/util/progress.rs
4c1fa54d10/src/cargo/util/progress.rs