Send correct 'at' when firing 'add' event

If you add an array of models to a collection and specify `at` in options when the add event is fired on the collection for each model the `at` sent in the options is incorrect for that specific model.

The `extend` is only necessary when the `i` > 0 because otherwise the passed in options have the correct `at`.

Downside is the `extend` because if someone was wrongly modifying options object in an add event and expecting to get those changes in other add events, that is now broken. I had considered changing the original `options` but that generally doesn't seem to be what any other functions are doing.