Border box

This pull request replaces the standard `content-box` box model with `border-box`. Main thing this does is a) makes the math for layout simpler, and b) makes flexible layouts a lot easier to implement (which we'll want to do eventually).

This is ready for review.