Use `update` for `reset` internally

Using `update` internally for `reset`'ting a collection is orders of magnitude faster than calling bare `reset` alone, through the use of `remove` instead of `add` for resetting models. It's a little cleaner too, since it uses the `update` that already  exists.

Here's the [jsperf](http://jsperf.com/bb-use-update-for-reset).

This pull also means collections no longer hold onto references to their models, and are removed fully on reset (I had to change one test to use `_.clone`).

I have to say I don't quite understand this one. Could anyone with a better sense of Javascript tell me why this might be?

**edit**: added a test case I missed in the first commit