Use `update` for `reset` internally

Using `update` internally for `reset`ting a collection is orders of magnitude faster than calling bare `reset` alone, using `remove` through update instead of using `add` in models. It's a little cleaner too, since it uses an existing method.

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?