Better organization of dynflow-related stuff

Besides better structure, it also makes sure the world initialization
happens after all engines were able to influence the dynflow
configuration.

From now on, to specify that another engine requires dynflow runtime,
it should call `ForemanTasks.dyntask.require!` instead
of `ForemanTasks.dyntask.initialize`.