code: function(obj, propName, value)
  {
  	if (conbo.isAccessor(obj, propName)) return;
  	if (arguments.length < 3) value = obj[propName];
  	
  	var enumerable = propName.indexOf('_') != 0;
  	var internalName = '__'+propName;
  	
  	__definePrivateProperty(obj, internalName, value);
  
  	var getter = function()
  	{
  		return this[internalName];
  	};
  
  	var setter = function(newValue)
  	{
  		if (!conbo.isEqual(newValue, this[internalName])) 
  		{
  			this[internalName] = newValue;
  			__dispatchChange(this, propName);
  		}
  	};
  	
  	Object.defineProperty(obj, propName, {enumerable:enumerable, configurable:true, get:getter, set:setter});
  }
docs: Creates a property which can be bound to DOM elements and others
  
  @param	{Object}	obj	- The EventDispatcher object on which the property will be defined
  @param	{string}	propName - The name of the property to be defined
  @param	{*}			[value] - The initial value of the property (optional)
  @private