Implement parallel compilation

This commit implements the -j flag in the `cargo_rustc` module, using the
primitives from the other commits. The default parllelism is 1 (like with
make).

This change also brings proper freshness propagation instead of the hokey logic
of once something is compiled, "compile everything to the right as well".