Move border-*-width out of BorderValue and store on SurroundData in ComputedStyle instead

This patch moves the storage of border-*-width away from BorderValue.
We instead store them on the generated SurroundData group on
ComputedStyle instead.

Since BorderValue is used by other classes such as OutlineValue and
MultiColData we have changed BorderData to store the
border-*-(style/color) information on BorderColorAndStyle which is the
BorderValue class without the border-*-width information.

The long term intention is to move all information away from
BorderColorAndStyle - it is a temporary class to store information as
we generate border-*-* iteratively.

Please note that we convert BorderColorAndStyle to a BorderValue when we
send information over to the Layout system to make the interfacing easy.
This will be changed to creating a new BorderValue from the individual
values in the long run or something along those lines
(pending discussion.)

Generated diff: https://gist.github.com/nainar/296dda6afe541b6ca6da18a2923d0ef9/revisions

BUG=628043

Review-Url: https://codereview.chromium.org/2861773004
Cr-Commit-Position: refs/heads/master@{#470272}
26 files changed