Defer failed log messages

Previously, when we failed to open a logging file, we errored, and
dropped the log message.  This commit makes it so that, if the reason we
failed was a permissions error, we instead add the log entry to a queue
of messages to be logged eventually, and inform the user that logging
has been suspended.  The user must run :flush-logs to resume logging.

If :flush-log has an fopen that fails with EPERM or EACCES, we re-defer
messages and inform the user.

On shutdown, BarnOwl will attempt to log all messages currently in the
queue one last time.
Add a -f flag to :flush-logs

This allows us to bypass any troublesome messages in the queue.
Add ETIMEDOUT to the list of errors for defer_logs

This is for AFS blips
Add a variable to auto-flush logs every n minutes
Let the user know when the logs have been flushed

I've found it a bit disconcerting to have no feedback on whether or not
:flush-logs has succeeded, and on whether or not we're still in deferred
logging mode.  Perhaps a message (owl_function_makemsg with no newline)
would be better than adminmsg here, but I'm not sure.