Refactor project and platform services

We need this refactoring in order to reuse code for `iOSProjectService`
By using `exec` we lose any diagnostic output that `android` prints to either `stdout` or `stderr`. It might be better to use `spawn` with `stdio: 'inherit'`, at least when in debug, so that it's easier to troubleshoot problems coming from the `android` tool.