(PUP-1563) resolve_install_conflicts excessively recurses
Previously, resolve_install_conflicts was called from inside the
modules_by_path iterator causing each module and its dependencies to be
checked for conflict for each installed module, even if the installed
module was completely unrelated. With a tree of dependencies and dozens
of previously installed modules, this walk can take hours.
This patch fixed the problem by moving the recursion outside of the
modules_by_path iterator loop.