MPS-20163 Module Dependencies hangs for modules with single cycle dependency. The view refactored completely, no recursion and endless dependencies. Tree of dependencies for a given module is built once and then used as a model for a tree. Cycles/bootstrap dependencies are visualized at once, as children of respective nodes instead of vague multiple selection. Dependencies are built using SModule dependencies wherever possible (still need to get rid of ModuleDescriptor uses) as it's the way to go (module descriptors are persistence aspect of modules and shall not be used by foreign code)
Merge branch 'master' into 3.2/artem/default

Conflicts:
	workbench/mps-workbench/source_gen/jetbrains/mps/ide/actions/trace.info
MPS-20163 Module Dependencies view: show unique dependency cycles (same cycle might show up few times, and we can't expect only single cycle to be there, thus unification with identical path (although might be reasonable to unify by role-module only)).
MPS-20163 Module Dependencies view: update tests, use tree model instead of tree nodes for checks, update expectations to match actual values discovered. As dependencies view doesn't use GlobalModuleDependenciesManager any longer, no need to check for consistency between the two. Location/package updated to match that of utility classes being checked.
Merge remote-tracking branch 'origin/master' into 3.2/artem/default
Rebuilt to match updated dependencies of mps execution plugin
Made NodeBuilder editor slightly better MPS-20204
Merge remote-tracking branch 'origin/MPS3.1'
Merge remote-tracking branch 'origin/master' into 3.2/artem/default