Implement the beginnings of the box model for render boxes

r? @sfowler

This rolls up some of the changes you've done.

I'm not quite happy with the way all render boxes have box model parameters, even if they aren't box model objects. I see now why WebKit has `RenderBoxModelObject`. Perhaps we should do the same and only make room for border/padding/margins for generic boxes and image boxes.