* Moved CustomCircuit class to /ooni/utils/circuit.py.
* Tor is started improperly, and the timeout function is stupid and just
  returns the deferred, rather than a timeout *on* the deferred.
* Refactored bridget completely.
* Broke up most of experiment() into tiny functions.
* Added custom exceptions and error handlers.
* Added more commandline option type enforcers, with custom handlers.
* Function to drop any privileges if using pluggable transports.
* The generated torrc now includes a Bridge line written to the file
  descriptor, if using bridges.
* The Bridge line properly handles pluggable transports.
TODO: Still need to fix the CustomCircuit class and the attacher.
* Switched to chainDeferreds for testing bridge by bridge, after which
  EXTEND cells are issued per relay per bridge. And it actually works.
* Moving to using @defer.inlineCallbacks for rewriting the torrc Bridge line.
  NOT DONE YET. NOT TESTED YET.
* Moving to bridges being assets and relays being a list attached to our
  TorState() instance, so that we can pass it to CustomCircuit.
TODO: Make the CustomCircuit() instance handle iteration through relay list,
      and provide access to objects for unreachable and reachable relays. We
      should probably check how onionoo handles this.
* Still working on the @defer.inlineCallbacks structure; I think I should
  use DeferredLists for each of the sets of Deferreds, and then pile all
  the DeferredLists onto TorState().
* Added documentation.
* Moved general setup, circuit, and bootstrap, to utils/onion.py.
* Still squashing bugs.
* Fixed the log.debug() function.
* Put more general things in the onion.py utility (renamed circuit.py to
  onion.py).
* Updated the installation instructions and documentation on dependencies.
* Added my name to the license.
* Fixes #6968, #6971
* Found bug: first bridge doesn't get tested #6970
* I'm trying to use trac more to keep other people up-to-date, in case that
  wasn't obviously. I hate Trac like nobody's business.
* Added singleton_semaphore utility function for safely adding processes to a
  reactor.
* Fixes #6969 (bridget tries to start multiple tor processes).
* Fixes #6970 (bridget skips testing the first bridge).
* Added more general Tor utility functions to ooni.utils.onion.
* Added decorator-based timeout function for blocking methods to
  ooni.utils.timer.
* Moved general Exception classes to appropriate files.
* Fixed another bug in the Options type enforcer.
* Moved bootstrap and remove_public_relay functions to Tor utilities file.
* Still sorting out the chainDeferred(defer.DeferredList(list)) problems.
* Modified the ValueChecker class to have static methods.
* Switched to dictionaries for self.relays and self.bridges so that all
  methods can access various values without having to constantly change
  parameters.
* Fixed a couple assertions.
* Need to fix the Deferred class decorator timeout.
* Added pre-chained start_tor_filter_nodes() Tor utility.
* Fixed the Deferred class decorator utility.
* Added more Sphinx/pydoctor(markdownable) documentation.
* Removed a couple unnecessary imports.
* Added Arturo's hacks.py back in, because it accidentally did not get added.
* Fixed the environment setting in bin/ooniprobe wrapper.
* WHY NO MORE ASCIIART?!?!?! WTF?!?!
Merge branch 'trial-refactor' into bridget-pt-merge-trial

Conflicts:
	ooni/plugins/new_bridget.py
	ooni/utils/log.py
* Fixed logging error in MissingAssetException class.
Merge branch 'master' of ssh://git-rw.torproject.org/ooni-probe

pretty weird coflict :P
Conflicts:
	ooni/utils/hacks.py