function copyFile (src, dest, ncpOpts, callback) {
  var orchestrator = new Orchestrator();
  var parts = dest.split(path.sep);
  var fileName = parts.pop();
  var destDir = parts.join(path.sep);
  var destFile = path.resolve(destDir, fileName);
  orchestrator.add('ensureDir', function (done) {
    mkdirp(destDir, function (err) {
      done(err);
    });
  });
  orchestrator.add('copyFile', ['ensureDir'], function (done) {
    ncp(src, destFile, ncpOpts, function (err) {
      done(err);
    });
  });
  orchestrator.start('copyFile', function (err) {
    callback(err);
  });
}
Algorithm
[1] Look at all installed platforms
[2] Copy (non-destructive) icons and splash screens from platform to local RESOURCE_DIR
[3] Copy (destructive) matching icons and splash screens from RESOURCE_DIR to platform

This ensures that local RESOURCE_DIR will be pre-scaffolded with icons and splash
screens generated by Cordova as placeholder ONLY for installed platforms and that
any modifications to local assets are reflected in the CORRECT Cordova platform
locations, without having to hardcode file paths.