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