Don't include CR or LF in log, debug, and progress messages
Adjust the log(), debug1(), debug2(), add_error(), and fatal() functions
to not include CR or LF in the message text. Instead modify log() to add
appropriate line feed (LF) or carriage returns (CR).
In addition, introduce to new functions to handle progress messages:
progress_update() and progress_end() -- and remove the old [q]progress()
function.
The idea is that progress_update() displays a message on stderr when
the process is connected to a TTY that becomes overwritten by log()
messages and further progress_{update|end}() messages.
progress_end() thereby enforce a line feed (LF), so that this message
always is preserved for the user to read.
And log() messages are always written to stderr, weather the process is
connected to a terminal or not (and always include a LF, too).
Not having CR and/or LF characters in log messages allows us, to forward
these messages to other log targets which are not "line based", like
syslog for example.