Merge branch 'master' into develop
Fix a bug where incoming unicode emails caused logging errors.

The stupid Python stdlib logging module doesn't handle unicode at
all. If debugging is turned on, and SAFELOGGING is disabled, the
incoming emails are logged. If they have any unicode characters,
processing of the emails stops due to UnicodeDecodeErrors.
Allow SMTP 'RCPT TO: bridges@bridgedb'.
Add rudimentary (email_addr,gpg_key_fingerprint) whitelist feature.

This serves two purposes. It allows arbitrary whitelisting of certain email
addresses for testing purposes, and once #9332 is fully implemented, will
allow encrypted emails to be sent to these whitelisted addresses.

 * FIXES part of #9332.
Add additional unittest assertion to test_SMTPAutoresponder_getMailTo_UnsupportedDomain().

If anything in this list ends up in the list of permitted client email
addresses, we should know about it, and also fail the test.
Don't allow coverage-test or coverage-html to fail in Makefile.

Something lately has been causeing Travis CI to sometimes not report a
build failure when a unittest fails. Removing the dashes before these
commands in the hopes that this was the problem.
Fix bug with weird '550 Sender not permitted' SMTP responses.

When raising a `twisted.mail.smtp.SMTPBadSender`, we were giving it the
origin's domain name as argument, which ended up with weird messages
like '550 Cannot receive from specified address <example.com@localhost>:
Sender not acceptable' being sent out. Apparently, SMTPBadSender want
the whole origin object, not just the domain.

 * CHANGE raising of SMTPBadSender in
   b.e.server.SMTPIncomingDelivery.validateFrom() to use the whole
   origin object, not just the domain, as its argument.
Make docstring for b.e.server.addServer clearer.

Since there are technically two SMTP servers, be clearer that this
function sets up the one which listens for incoming emails.
Add docstring note that b.p.a.normalizeEmail can raise UnsupportedDomain.
Check for whitelisted email addresses before any more complicated parsing.

 * CHANGE getMailTo() and runChecks() in
   b.e.autoresponder.SMTPAutoresponder to check for whitelisted
   addresses first, before any of the other checks.
Add whitelist attribute to bridgedb.Dist.EmailBasedDistributor.

 * ADD bridgedb.Dist.EmailBasedDistributor.whitelist attribute which
   should hold the contents of the EMAIL_WHITELIST setting in
   bridgedb.conf.

 * CHANGE createBridgeRings() function in bridgedb.Main module to use
   the new email distributor whitelist attribute, and pass it the
   settings from the parsed config file.
Remove superfluous normalizeEmail() call.

 * REMOVE second call to normalizeEmail() in
   EmailBasedDistributor.getBridgesForEmail(), and add note about where the
   checks are currently called.

 * ADD some extra logging when we receive imcoming requests from email
   addresses in the EMAIL_WHITELIST.

 * TODO check that incoming emails from addresses in EMAIL_WHITELIST have
   valid signatures made by the key with the corresponding GnuPG key
   fingerprint (as in EMAIL_WHITELIST, which is a mapping of addresses to
   fingerprints).
Merge branch 'hotfix/5463-email-line-recieved-logging' into develop
Add TravisCI build status image to README.
Bump Leekspin version to 0.1.4.
Fix old-style class: bridgedb.Bridges.BridgeBlock.
Add TODO: bridgedb.Bridges.BridgeBlock should be a zope.interface.Interface.

This does not count as a base class. There is absolutely no point to
it. I haven't bothered to do a git blame to see whose idea this was; it
doesn't matter. This is NOT A BASE CLASS. Especially when it is an
old-style class without a proper method resolution ordering algorithm.
Add generic mixin class metaclass to bridgedb.util.
Change bridgedb.test.util.TestCaseMixin to be a bridgedb.util.mixin.
Remove obsolete doctest running code in bridgedb.test.util.