@akre54: @jashkenas and @braddunbar want to remove that line of `this.undelegateEvents()` inside `remove`, but I'm saying I put it there for a reason because basically every other implementation will have to call `undelegateEvents` to clean up at the minimum the handlers View attached. @jashkenas and @braddunbar are saying we should just use `$.fn.remove` for GC.

I slept on this and I still think that you just *can't* guarantee `View#remove` will clean up everything immediately. Here's why:

```javascript
view.el.addEventListener('click', clickHandler);
view.remove(); // jQuery can't clean up clickHandler
var clickEvent = document.createEvent();
...
view.dispatchEvent(clickEvent);
```

While the above will still GC `el` and `clickHandler` in sane browsers, you *can't* guarantee that event handlers attached outside of `delegateEvents` will be detached even today and you can still trigger `clickHandler` before the whole thing gets GC'ed. So I think the tests for `remove` shouldn't even try to guarantee that either. You can keep $.fn.remove, but the tests shouldn't try to guarantee that all event handlers will be cleaned up because it's actually not possible.

Since we can only guarantee cleaning up the event handlers `delegate` attached, calling `undelegateEvent` inside `remove` becomes a "necessary convenience".