Add UnableToLoadDeckInput Exception
Move input checking out of checkOptions

Relocates input checking as late as possible so that inputs
to NetTest can be downloaded after instancing a NetTestLoader.
Adds class TestDeck

Provides a container for NetTests and helper functionality to
download and verify input arguments if specified by URL.
Make oonicli download inputs before starting tests.
Get the input processor as late as possible
Make the return value of getInputProcessor be a deferred.
Make inputProcessor setup be non-blocking
Update Unit Tests

Adds a call to the initializeInputProcessor method
Start outlining the oonibclient object.

Write the minimum unittests that it must pass to be complete.
Only run unittests if oonib is imported
Add support for running body_processor
Merge remote-tracking branch 'aagbsn/feature/add_deck_input_fetching' into feature/oonib-support

* aagbsn/feature/add_deck_input_fetching:
  Make oonicli download inputs before starting tests.
  Adds class TestDeck
  Move input checking out of checkOptions
  Add UnableToLoadDeckInput Exception

Conflicts:
	ooni/oonicli.py
Merge remote-tracking branch 'aagbsn/feature/add_nonblocking_inputprocessor_setup' into feature/oonib-support

* aagbsn/feature/add_nonblocking_inputprocessor_setup:
  Update Unit Tests
  Make inputProcessor setup be non-blocking
  Make the return value of getInputProcessor be a deferred.
  Get the input processor as late as possible

Conflicts:
	ooni/nettest.py
Start implementing support for downloading of test decks

The work here was mainly merging together my branch with the one of @aagbsn and
refactoring a lot of the code.
Get all the unittests to pass.
Store a cache of input descriptor lookups
Fix some bugs in unittests
Refactor verification of input file and implement caching
Implement downloading of input files based on URL in deck file
Fix bug that leads decks not being started properly