ascii: Correct multiple bugs regarding output width.
The SET WIDTH setting was ignored. This makes the code honor it for
output to a file. For output to a terminal, the terminal's width is
used instead.
Honor changes to SET WIDTH as well.
The code to detect terminal size changes wasn't properly signal safe,
and it was scattered across multiple files. This centralizes it and
makes it signal safe.
There were bugs in updates to min_hbreak in corner cases. This fixes
them.
Thanks to Frans Houweling and John Darrington for reporting these
bugs.