When given `rustc -C codegen-units=4 -o output --emit=obj`, reset units back to 1.
When given `rustc -C codegen-units=4 -o output --emit=obj`, reset units back to 1.

Fix #30063

Note: while this code is careful to handle the case of mutliple emit
types (e.g. `--emit=asm,obj`) by reporting all the emit types that
conflict with codegen units in its warnings, an invocation with
multiple emit types *and* `-o PATH` will continue to ignore the
requested target path (with a warning), as it already does today,
since the code that checks for that is further downstream.

GBGamer/rust,GBGamer/rust,GBGamer/rust,GBGamer/rust,aidancully/rust,graydon/rust,GBGamer/rust,aidancully/rust,graydon/rust,aidancully/rust,GBGamer/rust,graydon/rust,graydon/rust,graydon/rust,aidancully/rust,GBGamer/rust,aidancully/rust,aidancully/rust,graydon/rust,GBGamer/rust