Allow Collection.at to accept negative indexes

This allows you to do things like

```javascript
mycollection.at(-2) // get second to last, etc.
```
Add test for negative indexes in `at` method
Set correct number of assertions
Enhancing Model with isEmpty function
Adding the isEmpty function into the modelMethods
Merge pull request #3039 from fastest963/master

Send correct 'at' when firing 'add' event
Merge pull request #3301 from AndrewEastwood/patch-1

Enhancing Model with isEmpty function
Update README to better match backbonejs.org 

line 14 readme missing the word "with":
Backbone supplies structure to JavaScript-heavy applications by providing models key-value binding and custom events, collections...
--> on backbonejs.org reads as -->
Backbone.js gives structure to web applications by providing models with key-value binding and custom events, collections...

Also bolded models, views and collections just as they are on backbonejs.org
Merge pull request #3281 from jisaacks/master

Allow Collection.at to accept negative indexes
removed the strong tags, but kept the "with" on 14
Merge pull request #3318 from NickStefan/patch-1

Update README to better match backbonejs.org
Update backbone.js comment for clarity

Fixed comment in backbone.js
fix flawed test
fix wrong test: collection.model must be a function
Merge pull request #3329 from hmil/fix-options-success

fix flawed test
don't just test for the presence of options, test that it points to the same object as passed in.
clone options passed to reset
Merge pull request #3336 from admangum/issue_3306

clone options passed to reset
Merge pull request #3326 from biversen21/master

Update backbone.js comment for clarity
Hyphenate compound modifier. 

It's a single adjective: the compound word "two-way" (as opposed to two adjectives: "two" and "way").