This provides a base implementation for the ability to emit binary
module interfaces in the same compilation as generating object or
other output.
This part defers opening the BMI PCM file until it is actually needed.
At this point we will have parsed the TU and therefore can determine
if this job should emit both the BMI and some other artefact (in many
cases an object file).
This initial implementation assumes that the output filename for the
potential BMI will be known when the job is created.