Two adjustments to rustc for cargo

The first is to require that `#[crate_name]` and `--crate-name` always match (if both are specified). The second is to fix parallel compilation in cargo by mixing in `-C extra-filename` into the temporary outputs of the compiler.
You may want to update the comment a few lines above (lines 558-560), as it still claims that the crate name from the command-line is favored.