code: function(data) {
    var self = this;
    this._cookie = new tc.Cookie();
  
    modifiable.map(function(attribute) {
      Object.defineProperty(self, attribute, {
      enumerable: true
      , get: function() {
          return self._cookie[attribute];
        }
      , set: function(val) {
          self._cookie[attribute] = val;
        }
      });
    });
  
    readOnly.map(function(attribute) {
      Object.defineProperty(self, attribute, {
        get: function(){
          return this._cookie[attribute];
        }
      , set: noop
      , enumerable: true
      });
    });
  
    this.set(data);
  }
docs: HTTP Cookie
  @constructor
  @param {String|Object} data can be a cookie header string or a json object