Represent a dataset client that is managed by sync framework.
@param {String} datasetId the id of the dataset
@param {Object} opts options of the dataset client
@param {Object} opts.queryParams the query parameters of the dataset client. Will be passed to the data handler to list data.
@param {Object} opts.metaData the meta data of the dataset client. Will be passed to the data handler to list data.
@param {Object} opts.config the configuration option of the dataset client
function DatasetClient(datasetId, opts){
  opts = opts || {};
  this.datasetId = datasetId;
  this.queryParams = opts.queryParams || {};
  this.metaData = opts.metaData || {};
  this.id = generateDatasetClientId(this);
  this.config = opts.config || datasets.getDatasetConfig(datasetId);
  this.collisionCount = opts.collisionCount || 0;
  this.stopped = opts.stopped;
  this.syncScheduled = opts.syncScheduled;
  this.syncCompleted = opts.syncCompleted;
  this.syncLoopStart = opts.syncLoopStart;
  this.syncLoopEnd = opts.syncLoopEnd;
  this.lastAccessed = opts.lastAccessed;
}