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.
Would be better to use the engine name for the logger, rather than "sgtk". Again, I think loggers are global, so removing / adding handlers just below could have some unwanted side effects. Better, some kind of engine instance uuid should be used, to guarantee that we are changing things only for this engine instances ( and registered apps )