Now that moz.build can see EXTRA_*COMPONENTS and NO_JS_MANIFEST, we can move some logic from rules.mk (executed every build) to moz.build's emitter.py (executed only at build-backend time).