Logger support for non-block message

Previously, only messages passed to the logger via a block would be
printed.  Due to the wonky logger API, messages and prognames are
interchangeable and this was not taken into account in the
implementation.  Since the progname is fixed at logger creation time,
we were discarding any other value that might be provided (which at
times could be the actual message).  The new implementation uses the
input message or input progname, whichever is not nil, as the message.

[#63104902]
Merge 63104902-non-block-logging to master

[Completes #63104902]