Refactor behavior event collision solution.

After a talking with @jasonlaster after bbconf about his interesting
discussion with @jashkenas dealing with behaviors and our hackish approach to
resolving key collisions, I have implemented the new solution.

This implementation takes advantage of jquery's namespaced events.
http://api.jquery.com/event.namespace/ It is a feature that while
targeted at jquery plugin authors fits our needs perfectly. Allowing us
to generate a namespaced non-colliding event key that just works.

Backbone actually already does this to an extent under the hood with

```js
delegate: function(eventName, selector, listener) {
  this.$el.on(eventName + '.delegateEvents' + this.cid, selector, listener);
}
```

So here we are joining the club.
Ping #2108