Tweak a few run-make tests to emit files in the output directories, not directly in the source tree.
Allows replacing stderr with a buffer from the client. Also, some refactoring around run_compiler.
.o
This checks the `previous_work_products` data from the dep-graph and tries to simply copy a `.o` file if possible. We also add new work-products into the dep-graph, and create edges to/from the dep-node for a work-product.