Embrace the flexible box model in the widgets

The problem is that `initialize` calls `update_children`, which requires `this.box` to be defined. Hence either `this.$box` should be set in initialize or the initial calls to `update_children` should be moved to `render`, after the definition of `this.$box` (which would make more sense actually).