Add utility unittest.TestCase mixin class for testing SMTP.

 * ADD a new class, `test_email_server.SMTPTestsMixin`, which has the
   following methods useful for testing SMTP within
   `t.t.unittest.TestCase` subclasses:

     - SMTPTestsMixin._buildEmail(fromAddr=None, toAddr=None,
                                  subject=None, body=None)
         Creates email text (including headers) for use in an SMTP DATA
         segment. Includes the SMTP DATA EOM command ('.') at the
         end. If no keyword arguments are given, the defaults are fairly
         sane.

     - SMTPTestsMixin._buildSMTP(commands)
         Format a list of SMTP protocol commands into a string, using
         the proper protocol delimiter.

     - SMTPTestsMixin._test(commands, expected)
         Send the commands to the TestCase's protocol (this must be the
         `proto` attribute of your `TestCase`), and then check that the
         expected output matches what was received from
         `TestCase.transport` (another attribute you must assign).
Implement skipped unittests for bridgedb.email.server.addServer().
Add unittests for SMTP protocol responses of b.e.s.MailFactory.

These tests emulate, in Twisted, what the `telnet-an-email` [0] script
did by speaking raw SMTP over telnet in an embarrassing pexpect script
which was never committed for fear being chained in stocks and having
rotten tomatoes thrown at me.

Instead of that telnet nonsense, these tests use mocked `ITransport`s
from `twisted.test.proto_helpers` to create a transport layer for
sending SMTP protocol commands.

 * FIXES part of #9874 by automating some manual portions of the steps
   required for testing BridgeDB's email distributor.

[0]: https://trac.torproject.org/projects/tor/attachment/ticket/5232/telnet-an-email
Fix CI error on EmailServerServiceTests.test_addServer().

The SMTP MAIL FROM email address was unacceptable, because on TravisCI it
ended up being `localhost@localhost.localdomain`. [0]

[0]: https://travis-ci.org/isislovecruft/bridgedb/builds/25636170#L1732
Tell TravisCI to put bridges.torproject.org into /etc/hosts.

See http://docs.travis-ci.com/user/hosts/
Update TravisCI coveralls==0.3 to coveralls==0.4.2.
Update coverage==3.7 to coverage==3.7.1 for TravisCI and setup.py.
Move apt install dependencies to 'install' section in .travis.yml.
Update Twisted==13.1.0 to Twisted==13.2.0 in requirements.txt.
Pin zope.interface==3.6.1 (current Debian stable version) in requirements.txt.
Add --quiet options to apt-get and pip during TravisCI builds.
Create TravisCI build matrix for testing dependency versions.
Refactor bridgedb.email.server.MailMessage.getRecipient().

 * CHANGE to using only one try/except block for
   `smtp.AddressError`s. We should probably assume that our
   EMAIL_SMTP_FROM_ADDR in the config file is correctly formed, and not
   bother logging the special case if it is not. Instead, just log all
   `smtp.AddressError`s in the same manner.
 * CHANGE variable names to make code clearer.
Rename unittest methods for bridgedb.email.server.MailResponse.
Add unittests for MailResponse close(), write(), and writelines() methods.
Simplify MailResponse class by not implementing smtp.IMessage.

We aren't using it as an SMTP message delivery class anywhere, so
there's no need to have the extra methods.

 * REMOVE bridgedb.email.server.MailResponse.lineReceived()
 * REMOVE bridgedb.email.server.MailResponse.eomReceived()
 * REMOVE bridgedb.email.server.MailResponse.connectionLost()
 * REMOVE zope.interface implementation declaration of
   twisted.mail.smtp.IMessage by b.e.s.MailResponse.
Simplify MailResponse by removing extra file I/O methods.

The only one we really need is MailResponse.close(), the utility methods
(i.e. MailResponse.rewind()) handle other important functionality for
us.

 * REMOVE bridgedb.email.server.MailResponse.flush()
 * REMOVE bridgedb.email.server.MailResponse.read()
 * REMOVE bridgedb.email.server.MailResponse.readline()
 * REMOVE bridgedb.email.server.MailResponse.readlines()
 * REMOVE bridgedb.email.server.MailResponse.seek()
 * REMOVE bridgedb.email.server.MailResponse.tell()
 * REMOVE bridgedb.email.server.MailResponse.truncate()
Fix bug in MailResponse.write() multiline string handling.

The bridgedb.email.server.MailResponse.write() method wasn't properly
converting '\n' newlines in multiline strings to SMTP-formatted '\r\n'
newlines.

 * FIXES multiline string newline replacement bug in
   bridgedb.email.server.MailResponse.write() method.
Fix misnamed methods in MailMessage.reply() docstring.
Add 'pragma:' directive to MailMessage.reply() errback function.

We can't really test it, since it's a nested function. However, we
shouldn't need to, all it does is log the
twisted.python.failure.Failure.