Allow for behaviors to have behaviors

Gonna put a behavior on your behavior.

This implementation unfolds a tree of behavior dependencies and attaches them directly to the view. Child behaviors should proxy `$`, entity (i.e. model and collection) and UI events as per the general contract.

We have a particular use-case that would benefit from this: two behaviors – `Modal` and `HotKeys` – where a modal needs the hotkeys behavior. Setup might look like:

```js
var HotKeys = Marionette.Behavior.extend({});

var Modal = Marionette.Behavior.extend({
    behaviors: {
        HotKeys: { behaviorClass: HotKeys }
    }
});

var View = Marionette.ItemView.extend({
    behaviors: {
        Modal: { behaviorClass: Modal }
    }
});
```

This does not address the possibility of circular references.