Rename typechecker parameter related to whether or not we produce diagnostics.

Comment what the flag means.
Make the emitter no longer depend on the Program.

This breaks layering.  Also, it means the emitter depends on too large a surface area.
Now the emitter declares exactly what it needs, and only gets that.