Initial rewrite of Box layout

A Box needs to be constrained to the area given to it by its parent
container. Letting it position elements off-screen is not useful as well
as making it impossible to embed a Box in a container that can provide
it with more space (eg Scroller).