code: function(value, delaySort, equals)
    {
      var i = this.indexOf( value, equals );
      var element = this[ i ];
  
      if ( i !== -1 )
      {
        this.removeAt( i, delaySort );
      }
  
      return element;
    }
docs: Removes the given value from this collection if it exists - sorting the
  collection if a comparator is set on this collection and `delaySort` is not
  specified or a true value.
  
  ```javascript
  var c = Rekord.collect(1, 2, 3, 4);
  c.remove( 1 ); // 1
  c.remove( 5 ); // undefined
  c // [2, 3, 4]
  ```
  
  @method
  @memberof Rekord.Collection#
  @param {Any} value -
  The value to remove from this collection if it exists.
  @param {Boolean} [delaySort=false] -
  Whether automatic sorting should be delayed until the user manually
  calls {@link Rekord.Collection#sort sort}.
  @param {equalityCallback} [equals=Rekord.equalsStrict] -
  The function which determines whether one of the elements that exist in
  this collection are equivalent to the given value.
  @return {Any} -
  The element removed from this collection.
  @emits Rekord.Collection#remove
  @emits Rekord.Collection#sort