style: Implement basic column spans and the legacy `bgcolor` and `border` attributes.

This patch provides some of the groundwork for column spans greater than
1. It implements the `column-span` CSS property as well as the
corresponding `colspan` attribute; although the former is not
well-specified outside of CSS multi-column layout, INTRINSIC refers to
it. Although width is distributed to spanning columns, they do not yet
contribute minimum and preferred widths; this will be implemented in a
follow-up.

The parsing for the legacy `bgcolor` and `border` attributes is
implemented according to the WHATWG HTML specification.

Additionally, this patch cleans up some miscellaneous formatting issues,
refactors `layout/css` somewhat to eliminate needless levels of
indirection, and cleans up the handling of table rowgroups.

It relies on this patch: https://github.com/servo/rust-cssparser/pull/65

Here's a screenshot of Hacker News with these changes: http://i.imgur.com/l5pCZeT.png