config: move settings specs from engine into config
sml: move injection of system types from engine into SML
sml: move workflow from engine into SML
engine: refactor director into more cohesive classes

- move persisting of debug files into persister
- move SML workflow into sml::workflow
- move the sourcing of models into model_source
engine: merge director and generator into workflow
engine: update diagram to reflect current code
cpp: rename cpp_backend to generator
dia_to_sml: add dogen model