Embrace the flexible box model in the widgets

Should this and the `orientation` attribute be part of the base `Box` widget?