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

```
    delegate: function(eventName, selector, listener) {
      this.$el.on(eventName + '.delegateEvents' + this.cid, selector,
listener);
    },
```

So here we are joining the club.
[Fix] event listener unsetting on region swap.

Since .html was removing the event listeners your events would
be unbound on a view if you chose to preventDestroy on the swapped
view when you showed a new one.

fixes #2159
Use bind instead of partial in TriggerHandlersForBehaviours
Merge pull request #2158 from marionettejs/sjs/behavior-collision-fix

Refactor behavior event collision solution.
Merge pull request #2168 from megawac/be-bind

Use bind instead of partial in TriggerHandlersForBehaviours
Merge pull request #2161 from marionettejs/sjs/region-attach-bug-fix

[Fix] event listener unsetting on region swap.
Fix #2108; be consistent with _.each iteration

Conflicts:
	src/behaviors.js