Fix circular dependencies in sts/control_flow/__init__.py
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.
Import style changes to keep things consistent
some refactoring to make pylint happy
Add deprecated decorator

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