prepare for SubFlow

add debug parameter to run() method of elements
InputData: rename connector dummy to data_in
OutputData: add connector data_out and a run() method
disambiguate method invalidate()

renamed to 3 different names depending on the object:
=> connector : invalidate_connector()
=> element : invalidate_element()
=> flow : invalidate_chain()
add simple sub flow feature

make Flow inherit from Element
add_element() makes input/output connectors from Input/OutputData elements
test: control signal true allows execution of subflow

+ refactor test_python_subflow.py to use setUp() for repetitive tasks
+ update TODO list with a few extra tasks
test: control signal false blocks execution of subflow
test: control signal blocked/invalid blocks execution of subflow
more control flow tests for subflow

+ test data signal blocks execution
+ test disconnect control connection which was False
+ test disconnect control connection which was True
+ test invalidate control connection
test & fix 2 calls to run for SubFlow

In the case of a SubFlow, we need to do more work when invalidating an
input connector. We need to also invalidate the internal chain of
elements instead of only the SubFlow's output connectors.
last invalidate related tests for SubFlow
test & fix no double constructor calls

Flow.__init__() called Flow.create_new() twice: once through
Element.__init__() and once directly.
Now there are still 2 calls, but one calls create_new_element(), the
other calls create_new_flow(). The duplicated functionality from
Element.create_new() has been removed from Flow.create_new()
initial save/load support for SubFlow

tests:
-> very simple test to check if we can save/load a flow with a SubFlow
   element, without any checks on actual functionality. Only proving
   that load_from_database does not error out.

DB models:
-> allow ElementModel.flow to be NULL (for "main" flows)
-> add a OneToOneField from FlowModel to ElementModel
-> FlowModel.id is gone as primary key (use FlowModel.element.id instead)

logic:
-> rename load_from_database() to load_[element|flow]_from_database()
-> element_model.save() immediately in create_new_element(), because we
   don't need/want to wait on set_flow() anymore
-> register Flow as an element_type
-> rework Flow.__init__() to be able to load Flow objects from the DB,
   including their related ElementModel
-> Flow.get_element() searches recursively in all SubFlows
extended testcase for SubFlow

new tests:
-> verify the id of the original and save/loaded flow is identical
-> verify the id of the original and save/loaded subflow is identical
-> run the flow after save/load and verify the result is OK

code changes to pass these tests:
-> load_flow_from_database() calls add_element() so the special case
   handling of InputData and OutputData is also done in load from DB

remove subroutines from the TODO list, as I believe it's done
Merge branch 'feature/subflow' into develop