code: function(pathOrCallback, callback, remove) {
      // Get callback func
      var cbFunc = (callback)? callback : pathOrCallback;
      // Get path for event
      var pathArg = (callback)? pathOrCallback : null;
  
      for(var i=0; i<this.length; i++) {
        var res = this[i];
        var path = (res.path=="/")? (pathArg||res.path) : res.path + (pathArg||"");
  
        if(remove) SpahQL.Callbacks.removeCallbackForPathModifiedOnObject(path, res.sourceData, cbFunc);
        else SpahQL.Callbacks.addCallbackForPathModifiedOnObject(path, res.sourceData, cbFunc);
      }
      
      return this;
    }
docs: SpahQL#listen(path, callback) -> SpahQL
  - path (String): A path relative to the items in this set, if you only want to listen for changes on a particular subkey.
  - callback (Function): A function to be called when the data in this SpahQL set is modified.
  SpahQL#listen(callback) -> SpahQL
  - callback (Function): A function to be called when the data in this SpahQL set is modified.
  
  Registers a callback to be triggered when data within this set of results is modified.
  Note that this method listens for changes on all items in this set:
  
  var db = SpahQL.db(some_data);
  
  // Callback triggered whenever the first item in any array anywhere is modified
  db.select("//0").modified(function() {...})
  
  // Callback triggered only when a specific array is modified
  db.select("//0").item(0).modified(function() {....})
  
  
  Upon modification, the callback will be triggered with arguments:
  - <code>result</code>: A SpahQL instance containing one result item, the item modified. This may be <code>undefined</code> if the data at that path was removed during the modification.
  - <code>path</code>: The path being observed
  - <code>subpaths</code>: An array of paths modified, relative to the path being observed. Empty if the observed path was itself replaced.
  
  Returns self.