Fix three failing unittests in lib/bridgedb/Tests.py.

Three unittests were failing in lib/bridgedb/Tests.py due to changes made for
users). They were:

 - testDistWithFilterBoth (bridgedb.Tests.IPBridgeDistTests)
 - testDistWithFilterIP4 (bridgedb.Tests.IPBridgeDistTests)
 - testDistWithFilterIP6 (bridgedb.Tests.IPBridgeDistTests)

These were failing due to chopping the first 7 bytes off the the returned
config lines, because they expected to see the "bridge " prefix and it's not
there anymore.
Run unittests before changing to the runtime tests directory.

And Don't run trial-based tests until #9199's tests are merged.

(cherry picked from commit 31cff62c026a94edd114a5adff2848899569c5f6)
Created a new branch in order to drop commit
826f872e075a639250d565a8d93b1c405256f82d.

Signed-off-by: Isis Lovecruft <isis@torproject.org>
Add opt module with updated options parsers.
Add runner module and descriptor generator.

 * ADD lib/bridgedb/runner.py for running trial/unittest tests.
 * ADD scripts/gen_bridge_descriptors.
 * Fix lib/bridgedb/opt.py by coercing a commandline parameter to a string;
   it's sometimes None or an int.
Refactor scripts/bridgedb to use the new options and runner.
Add scripts/make-ssl-cert and start using it in .travis.yml.

 * ADD script for generating a self-signed SSL certificate for testing.
 * CHANGE dependency installs in .travis.yml to ignore suggestions and
   recommendations.
Add script for killing the the server after N seconds; avoid running forever in CI.
Fix python2.6 syntax errors.

These were the result of using indexless format string syntax, which was
introduced in Python-3.1 (and then it was backported to some versions of 2.7,
but not 2.6, apparently).

 * FIXES a couple print statement syntax in lib/bridgedb/Tests.py causing test
   failure.

The failing test was:
 - testDistWithFilterBlockedCountriesAdvanced (bridgedb.Tests.IPBridgeDistTests)
Refactor bridgedb.Main.run() and bridgedb.Main._reloadFn().

The main entry point and server reload function are refactored to recieve the
parsed options from the commandline script, scripts/bridgedb.

It is necessary to pass *args to `_reloadFn()` (as well as its original
stubbed lambda function), because the arguments are technically unknown to the
scope of the `reload()` function embedded in `bridgedb.Main.startup()` when it
is evaluated at compile time (they are not known until later when
`bridgedb.Main.run()` is called via scripts/bridgedb).
Remove unnecessary requirements, make others explicitly versioned.
Switch Travis-CI IRC notification to notices.
Add commands for CouchDB testing to .travis.yml (innactive for now).
Pass the entire set of main options to the runner.
Add RUN_IN_DIR as a commandline option and cleanup the option explanations.
Rewrite the descriptor generator.

 * ADD better descriptor generator, it makes descriptors according to
   dir-spec.txt now. They are even signed with OpenSSL generated RSA keys, and
   have all the embedded document hashes and fingerprints of the correct keys
   used for signing and everything.
Fix the interface between bridgedb and the descriptor generator.
Add documentation on current bridge descriptor formats.

These aren't sanitised -- they are completely faked. There has been so much
confusion over what these things look like...I really just want something that
I can point to. I (or anyone else) should update the metrics dataformat pages,
as well as perhaps provide better clarification in tor-spec.git for the lines
whose format is unclear.

 * ADD docs/DESCRIPTORS.md.
Include class for varying the tor versions in generated descriptors.
Merge branch 'feature/9865-test-runner-2-r1' into develop