Refactor behaviors to use partially applied functions

This shouldn't change the way behaviors worked, but it should remove some of its hackish roots.

The diff makes it look like a big change, but it's mostly stuff just moving around. The new [version](https://github.com/jasonLaster/backbone.marionette/blob/behaviors-partial/src/marionette.behaviors.js) as usual is easier to read. 

On a high-level, the change is going away from:

```js
var _this = this;
var delegateEvents = view.delegateEvents;
view.delegateEvents = function() {
  delegateEvents.apply(view);
}
```

to 

```js
view.delegateEvents = _.partial(methods.delegateEvents, view.delegateEvents, this.behaviors);

methods.delegateEvents = function(delegateEvents, behaviors) {
   delegateEvents.apply(this);
}
```

I like the new version because it makes it clear that delegateEvents relies on the original function and behaviors. Also, it's always nice to have a lot of red in your main method :)