Fix bad string formatting.

One of these was just a thinko (passing an unused argument); one was
a slightly deeper problem where I didn't realize that % for string
formatting has higher precedence than + for string contatenation,
so ('%s consumed' + 'asdf' % ('string')) does not do what I wanted,
which is (('%s consumed' + 'asdf') % ('string')).

Clearly none of this was tested. (67209995 added the more complicated
paranoid notifications that are at fault here, but I didn't actually
test leaving things open long enough to generate the warnings, then
3c73c9a0 broke timers badly enough that paranoid warnings weren't
firing and this other bug was moot until yesterday when I started
looking at logfiles and fixing things.)
Prevent exceptions in send_notification from propagating,
since too much could happen there.

NB the smtp/etc calls the notification subsystem sends should really
be asynchronous, not in the listener thread.
Format timestamp as human-readable for normal log messages.
Add support for SSL and authentication to SMTP notifier.

My ISP happened to start requiring authenticated sessions since
the last time I had notification working.