Refactor HTTP Requests test

Fix bug where response headers where not getting compared
In case of failing requests write control_failure and experiment_failure report keys

These keys will contain the error strings for errors that have occurred while
performing the HTTP request.
Do not swallow errors in HTTP test template
Set the default value of the failure keys in the HTTP request test
Make the user agent selection in the HTTP Requests test be static

This is to avoid false positives due to user agent based targeted content
Disable by default user agent randomization in HTTP Request template
Update user agent strings for user agent randomization

They are now taken from the PETS2010 paper "How unique is your browser" as the
user agents with the largest anonymity set.
Note: this is probably no longer true as of today, but I could not find a
better source for mostly used user agent strings and it's for sure better than
what we had before (We were considering highly used Opera 8.1).
Add sent packets to report and use startSending instead of sendPackets

if sendPackets is called before startSending is called, ScapySender is not
properly initialized
Merge pull request #37 from hellais/http_requests_refactor

Refactor HTTP Requests test
Start outlining the Manager classes (#7852)

These will keep track of the running measurements and reporting tasks.
Outline the Measurements and NetTest classes (#7852)

These wrap the NetTestCase and implement the failure and retry logic.
NetTest is responsible for loading the test classes and methods.
Measurement is responsible for bundling sets of test classes, methods
and inputs.
Outline the rate limiting abstract class (#7852)

Classes that impose constraints on timeouts and issue rate go here.
Outline the base class for tasks (#7852)

Tasks are the jobs that get handled by the managers.
Start outlining the unittests for manager (#7852)

This should be split up into further blocks
Properly rename MeasurementsManager
Refactoring of reporting managers

Make the dependencies between modules much clearer
Sketch out a graph that illustrates such depedencies
Move Measurement and ReportEntry into the tasks module
Renaming of measurements methods
Move error handling functionality to the errors module
Function that will transform an object into a listiterable

Will return the iterable if it's an iterable