Reactor seems to not be cleared, or my actual network here is severely messed
up.
Re-ported echo. Fixed parameters not being passed through txscapy.sr to parent methods.
Updated ooni.inputunit.InputUnit documentation, and fixed __repr__ to show
original input list.
Consolidated a custom Exception class which was the same in ooni.utils.net and
ooni.oonicli.

* Cleaned up documentation and indentation in oonicli.py, runner.py,
  utils/net.py, and utils/__init__.py.
* Removed all occurences of the duplicate Exception class.
* Added IPv4/v6 parser checkIPandPort() to utils/net.py.
Removed 'multi' kwarg from txscapy.ScapyProtocol for now, because Arturo is
correct that the parent classes don't correctly handle it.
Ported tcpsyn to the new api.
Cleaned up report generation and results/logging display.
Added an exception catching wrapper for quick debugging, and added more documentation.
Still working (amend me).
Trying out cerealizer for passing objects.
Removed cerealizer because it sometimes causes the reporter to hang.
Added better reporting of statistics and safe packet information to TCPflags
test, which is a combined and condensed version of TCPsyn and TCPfin tests.

* Tested pcap support.
* Updated documentation.
Added warning suppression for scapy's logger to the beginning of oonicli.py.
Added connection timeout to geoIP requests.
Added log.warn() and log.fail() functions to ooni's logger, and fixed the
deferred debugger in tcpsyn.setUp.
Started implementing a way for a test to abort itself,
nettest.NetTestCase.__test_done__().
Rearranged the logic of ensuring that the reactor is shutdown, and removed a
couple extra blank lines at the end of /ooni/utils/__init__.py and
/ooni/utils/hacks.py.
First setup.py draft
Use saner variable names
Fixed log.warn() and log.fail, but blocking on a way for tests to call
a method to abort themselves and hand execution control back to the runner.