layout: Implement a subset of CSS linear gradients per the CSS-IMAGES specification.

This implements a subset of the CSS `linear-gradient` property per the
CSS-IMAGES specification:

    http://dev.w3.org/csswg/css-images-3/

The full syntax is parsed, but only the beginning and end color stops
are used, and gradients are clamped to the nearest 90 degrees. It should
not be architecturally difficult to add the remaining pieces, but in the
interests of bounding the size of this patch that work has been left to
follow-ups.

Improves GitHub.

r? @glennw
Keep `CssColor` rather than `RGBA` in the computed value. Then layout/painting code that accesses it needs to use [`ComputedValues::resolve_color`](https://github.com/servo/servo/blob/69f8b46f362a828ffaefe9623355bc1ad76dc5e0/components/style/properties/mod.rs.mako#L1724-L1729).

This is all because:

http://dev.w3.org/csswg/css-color/#currentcolor-color
> This happens at used-value time, which means that if the value is inherited, it’s inherited as currentcolor, not as the value of the color property, so descendants will use their own color property to resolve it.