Add config options for safelogging and logging threads.

 * ADD several new config options:
    - LOG_THREADS:
       adds the thread name and id, if available, to log messages.

    - LOG_TRACE:
       log the line number, module name, and function name where the log
       call was made.

    - LOG_TIME_FORMAT:
       Useful for when you don't need to be told that it's Feb 11th over
       and over again.
Add module bridgedb.safelog with automatic log filters.

Include automatic filters for email addresses and IPv4/6
addresses. Things such as bridge fingerprints will still need to be
manually scrubbed by calling `bridgedb.safelog.logSafely()`.
Move manual safelog setting and functions to bridgedb.safelog module.

 * MOVE util.safe_logging → safelog.safe_logging.
 * MOVE util.set_safe_logging → safelog.setSafeLogging
 * MOVE util.logSafely → safelog.logSafely
 * REMOVE manual calls to `logSafely()` for values which are
   automatically scrubbed.
Add bridgedb.safelog sources to Sphinx build configs.
Move log configuration functions to bridgedb.util module.

  * MOVE `Main.configureLogging()` → `util.configureLogging()`.
  * CHANGE `configureLogging()` function to use
    `logging.config.dictConfig()` with automatic safelogging filters
    from `bridgedb.safelog` module.
  * ADD `util._getRotatingFileHandlers()` function for chmod/chown'ing
    the rotated log files to be readable only by the running process
    owner.
  * ADD `util.JustifiedLogFormatter` class for justified printing of log
    messages when the config options LOG_TRACE and LOG_THREADS are
    enabled (this extra information is then printed in justified columns
    on the left, leaving the actual log messages left-justified to the
    same width on the right, which in my opinion is much easier to read
    quickly).
Add unittests for bridgedb.safelog module.

  * FIXES #9875 Write tests for BridgeDB's logger
Fix recursion in filtered log call in validation used by log filter.

We can't log an IP address in a IP validation function which is used by
a log filter in `bridgedb.safelog`, because the log call made in the
validation function `bridgedb.parse.addr._isIPv()` will call the filter,
which will call the validation function, which will call the logger,
which will call the filter…
Merge branch 'fix/9199-safelogging' into develop