Split unittests for EmailServer.getMailResponse() into smaller tests.
Add unittest for EmailServer.replyToMail().
Move email address parsers from bridgedb.Dist → bridgedb.parse.addr.
Fix unicode encoding errors in outgoing SMTP transport.

  * REFACTOR bridgedb.EmailServer.composeEmail() to use io.BytesIO.
Fix test_EmailServer unittests which expected StringIO.
Rewrite EmailServer.getMailResponse() to handle unicode.

 * FIXES #11522
 * REMOVES EmailServer.MailFile class.
 * CHANGES EmailServer to use twisted.mail.smtp.rfc822 instead of rfc822.
Always return a Deferred from EmailServer.composeMail().
Implement correct EmailServer.MailDelivery.receivedHeader() parsing.
Move EmailServer.getGPGContext() → crypto.getGPGContext().

 * ADD new class, `bridgedb.crypto.LessCrypticGpgmeError` for parsing
   GPGME errors.

   Usually, these errors are just a tuple of integers, i.e.:
       (7, 32586, "Unsupported command")
   which means absolutely nothing to me, and is not helping with
   debugging. It takes a `gpgme.GpgmeError` as its initialisation
   argument, and it automatically makes sense of the stupid thing.

   Consequently, the getGPGContext() and signing done with GPGME now
   have better error handling.
Add crypto.gpgSignMessage() utility function.
Rewrite test_EmailServer.FakeDistributor → test_EmailServer.DummyEmailDistibutor.
Fix broken test_EmailServer unittests due to extra newline.
Simplify test_EmailServer.EmailResponseTests assertion checks.
Add doctrings to test_EmailServer.EmailResponseTests.
Reorder transport requests in unittests.

BridgeDB only pays attention to the last transport request it received
in an email.
Skip several email unittests, manual test results seem fine.
PEP8 whitespace fixes in EmailServer.
Add missing newline separator in the "no bridges" email response.
Merge branch 'fix/11522-exc-in-email-dist' into develop

Conflicts:
	lib/bridgedb/EmailServer.py