26902 Initial code review

Created a branch from the very first commit to be able to review the whole code written so far.
This does not mean that a merge should be done after the review is done, this is a "dummy" pull request.
Should TOOLKIT be used as prefix, instead of TK, for consistency purpose ?
Out of curiosity, do we fork children from start_engine, hence the need to set and unset an environment variable, instead of adding a custom property to the context ?
And last, should the call to start_engine be protected by a try / finally block, to guarantee that we unset the Flame engine mode, even in case of errors ?