code: function(start, deleteCount)
    {
      var adding = AP.slice.call( arguments, 2 );
      var removed = AP.splice.apply( this, arguments );
  
      if ( deleteCount )
      {
        this.trigger( Collection.Events.Removes, [this, removed, start, deleteCount] );
      }
  
      if ( adding.length )
      {
        this.trigger( Collection.Events.Adds, [this, adding, start] );
      }
  
      this.sort( undefined, undefined, true );
  
      return removed;
    }
docs: Splices elements out of and into this collection - sorting the collection
  if a comparator is set on this collection.
  
  @method
  @memberof Rekord.Collection#
  @param {Number} start -
  Index at which to start changing the array (with origin 0). If greater
  than the length of the array, actual starting index will be set to the
  length of the array. If negative, will begin that many elements from the end.
  @param {Number} deleteCount -
  An integer indicating the number of old array elements to remove. If
  deleteCount is 0, no elements are removed. In this case, you should
  specify at least one new element. If deleteCount is greater than the
  number of elements left in the array starting at start, then all of the
  elements through the end of the array will be deleted.
  If deleteCount is omitted, deleteCount will be equal to (arr.length - start).
  @param {...Any} values -
  The elements to add to the array, beginning at the start index. If you
  don't specify any elements, splice() will only remove elements from the array.
  @return {Any[]} -
  The array of deleted elements.
  @emits Rekord.Collection#removes
  @emits Rekord.Collection#adds
  @emits Rekord.Collection#sort