Refactor project and platform services

We need this refactoring in order to reuse code for `iOSProjectService`
This is actually doing an install, not just download? Why hot rename it to something like `installSafe`.