Minor refactoring and debugging

Further code cleaning and debugging of a non deterministic bug

Refactoring and bugfixing of Director and NetTest
Get Director, TaskManager's, NetTest and oonicli to talk

Tests are scheduled through the MeasurementManager, Reports via the
ReporterManager and the Director keeps track of everything that is going on.

Configurable retries and timeouts are possible.

As an example, example_simple.py is run and the reports are written.
Get test version from net_test_file and parse all options

Adds helper method _parseNetTestOptions to NetTestLoader in order
to assemble the various options and flags into a single object

Also add functionality to read the test name and version from the
NetTestCase

Check that the required option is not None

localOptions is a dict, and the required option may be None.
This adds a test for this case.