code: function (id, value) {
              if (!_.isEqual(this.data[id], value)) {
                  this._dirty = true;
                  if (value === undefined) {
                      delete this.data[id];
                  } else {
                      this.data[id] = _.cloneDeep(value);
                  }
                  return true;
              }
              return false;
          }
docs: @private
  
  Performs the set operation on this Scope's data, deleting the given ID if
  the new value is undefined. The dirty flag will be set as well.
  
  @param {string} id key to set or delete
  @param {*} value value for this key (undefined to delete)
  @return {boolean} true if the value was set.