code: function Deploy(opts) {
    util.applyProperties(this, opts);
    this.sfdcClient = this.project ? this.project.sfdcClient : this.sfdcClient;
    this.metadataHelper = new MetadataHelper({ sfdcClient: this.sfdcClient });
  }
docs: TODO: create tmp directory on instantiation, set as property TODO: refactor execute... methods 
  Represents a deployment to one or more Salesforce.com servers
  @param {Object} opts
  @param {Array} opts.project - Project instance
  @param {Array} opts.sfdcClient - Sfdc Client instance
  @param {Array} opts.targets - array of org connections
  @param {Array} opts.checkOnly - whether this is a validate-only deployment
  @param {Array} opts.runTests - whether to run tests during this deployment
  @param {Array} opts.rollbackOnError - whether to rollback when the deployment fails
  @param {Array} opts.package - deployment payload
  @param {Array} opts.newDeploymentName - the name of the deployment to be saved for future deploys
  @param {Array} opts.debugCategories - array of debug categories for the deployment