Systematically report when output file is not updated

Previously, if there were errors it wasn't obvious that the output PDF
was not updated (which is common for modern build tools, but
unexpected for TeX).  Also, in some situations there may be no pages
of output but we would fail to report that.  Fix this by
systematically printing a message at the very end if something went
wrong and prevented the output PDF from being updated.
Separate terminfo handling from progress-reporter
Colorize messages

This follows the same convention as recent versions of GCC.