ch-run: warnings cleanups
`ch-run` re-prints warnings on exit so they don’t get lost (see #1674). However, the current code: * Does not re-print warnings in some cases (see #1690). * Maintains a fixed-size buffer of warning strings, rather than e.g. a list of strings that can be re-sized. (Note, however, that the fixed buffer might simplify implementing #1690.) * Re-prints the warnings *after* a fatal error is printed, which might be confusing. It seems better to re-print before or not at all in this case. This issue is to tidy these problems.
issue