Factor out repository management into a class
Add an option to roll back STS/POX/Hassel for each experiment
Add usage comment
Make -t (--timestamp-results) a boolean flag
Read --timestamp-results as a bool
Tweak default fuzzer params
Remove log statement
Rename tool
Fix name
Recompile binaries
Avoid bug where hassel is not in most-up-to-date commit by default
Refactor Host, HostInterface, Link into abstract classes

This refactoring allows to have multiple implementatinos for the same entities.
control_flow_test.py will fail because of this change. This is due to pickle
unable to load the new classes. It will be fixed in later commits.
Add deprecated decorator

Helps with identifying unused code. Copied from python's website
https://wiki.python.org/moin/PythonDecoratorLibrary
Add SSHEntity

Add parant entity for things controlled via SSH
Refactor controllers entities

- Move controller code to a single file
- Add tests (unit and integration) for controllers
- Use SSHEntity as a base for VMController
Reformat docstring to match sphinx guidlines
Rename get_concrete_impl to get_concrete_class in test cases
Make it possible to specify mac address for namespace hosts

Previously, mac addresses are auto generated for the host interface
in launch_namespace. This change make it possible to specify it by the
user.
Refactor hosts into a submodule in entities

There're so many hosts types, for clarity it's better to refactor them
into one submodule
Refactor out lambda functions for coloring output

These two functions are usefull in other contexts. Namely, coloring
SSH output.