fix process reaping on allegro (part of patch to external-program library)

Signed-off-by: Utz-Uwe Haus <lisp@uuhaus.de>
Handle all headers uniformly and rfc822 safe.

Some headers like bcc and the other-headers field of the
mail-output-stream class were ignored. Folding of long headers was missing.

Signed-off-by: Utz-Uwe Haus <lisp@uuhaus.de>
remove unused and undefined exported special variables

Signed-off-by: Utz-Uwe Haus <lisp@uuhaus.de>
drop sbcl-specific dependencies we no longer need

Signed-off-by: Utz-Uwe Haus <lisp@uuhaus.de>
use cl-base64 and babel-streams for portability

Signed-off-by: Utz-Uwe Haus <lisp@uuhaus.de>
Improve attachment handling

Better error reporting if mime object construction fails,
add the possibility to specify the mime type with the attachment.

Signed-off-by: Utz-Uwe Haus <lisp@uuhaus.de>
work around undocument return value of reap-os-subprocess on allegro

Sometimes -1 is returned as PID, apperently if waitpid(2) returns -1.
Bug report for Franz Inc. pending

Signed-off-by: Utz-Uwe Haus <lisp@uuhaus.de>
document attachment specifications

We now handle mime objects and pathnames like before, but also
lists with data content (pathname, string, vector, stream) and explicit
type/subtype[/charset] specification.

Signed-off-by: Utz-Uwe Haus <lisp@uuhaus.de>
use defvar for allegro process tables

this ensures we don't leak process status in interactive session/debugging

Signed-off-by: Utz-Uwe Haus <lisp@uuhaus.de>