layout: Implement `border-spacing` per CSS 2.1 § 17.6.1 and the legacy `cellspacing` attribute per HTML5 § 14.3.9.

Table layout code has been refactored to push the spacing down to
rowgroups and rows; this will aid the implementation of
`border-collapse` as well.

r? @SimonSapin