extract downloading and compilation logic from InstallCommand

ModuleManager handles dependency downloads.
Compiler handles module and app building.