Introduce Logger/BufferedLogger skeleton

These will serve as providing logging across the add-on in a way that
enables buffering logs that might not be written until the configuration
is able to be read.
Implement buffering in BufferedLogger

This is currently setup using on/off for the handlers, but debug levels
probably need to be configured instead.
Configure Formatter object for all handlers

This uses a simple time/module/line/level/message format.
Generalize the Logger class

This now supports arbitrary Handlers/flag mappings, and also supports
setting the Formatter from the client code.
Wire up Logger instance with Conf class

The actual calls needs to be implemented within the Conf class, but this
is the beginnings of adding logging support to the configuration loading
and saving processes.
Add logging support to Conf class

This is achieved mostly by extending the Cursor class implementation and
providing debug() calls for all SQL calls to the underlying database. In
addition, info() calls are done during major table operations (i.e. for
initial creation and also migration updates).
Introduce new configuration columns for debugging

Called simply, debug_file and debug_stdout, with both being off by
default.
Documentation for init with SQLite3 Cursor

This class is a little odd in how it does initialization, and thus we
need to have a separated set_logger() method -- documentation updated to
reflect this.
Enable notify-on-load/change configuration

This allows us to automatically notify the logger implementation of the
user's logging preferences at startup, yet make log entries about the
retrieval of that preference.
Merge branch 'chg/separated-classes.logger'

Brings buffered logging support into the application. The "buffered" bit
of this means that logging can happen in-memory while the configuration
file is loaded to determine whether logging is even desired.
Make Conf instances more dict-like

Instead of put(), use update(), just like a dict. Additionally, provide
single key assignments available, just like a dict.

However, maintain the ability to use attributes, unlike a dict.
Activation fix for Logger class

After activation, instance's _activated flag was not set, causes an
error during a successive activate() call.
Exclude log files from version control

With the new logging functionality, this will prevent addon.log from
being accidentally checked into version control.