Embrace the flexible box model in the widgets

I like that it inherit from `BoxView`. Actually, `Popup` also implements `add_child_model` and `remove_child_model`. The only difference is that it applies it to `$body` instead of `$el`. 
Maybe everyone should have a `$box` attribute, equal to `$el` in the base `BoxView` class and set to `$body` in the case of `Popup`. What do you think?