Added splice to collections

Adding `splice` to collections which is just a wrapper for slicing and then removing. Optionally also allows you to replace models just like `Array.prototype.splice`. Like `slice` it has the same arguments as `Array.prototype.splice`.

The only problem I see with this is that we don't have a good place to put `options`. We can't really just shove it on the end since we couldn't distinguish someone not passing options from someone passing an object that should be added. We could put it after `howMany` but that would break the format from being the same as `Array.prototype.splice`. I didn't put it anywhere for now, I thought I'd wait for others to weigh in.
Would `removeAtIndex` be a more suitable name?

On Wed, Nov 12, 2014, 9:16 PM Graeme Yeates <notifications@github.com>
wrote:

> In backbone.js:
>
> > @@ -826,6 +826,15 @@
> >        return slice.apply(this.models, arguments);
> >      },
> >
> > +    // Splice removes a number of models and optionally replace them
> > +    splice: function(index, howMany /* [, replaceModel1[, ... replaceModelN]] */) {
>
> I'd be -1 for calling it that because of how tricky Array.prototype.splice
> is and it may cause confusion (e.g. negative indexs)
>
> —
> Reply to this email directly or view it on GitHub
> <https://github.com/jashkenas/backbone/pull/3380/files#r20268781>.
>