Refactor project and platform services

We need this refactoring in order to reuse code for `iOSProjectService`
This method can be made private in the implementation. The `installSafe` method can be renamed to just `install`, then.