[css-multicol] Support percentages in column-gap

This patch adds percentage support to column-gap property.

Most of the changes are related to the parsing logic,
the column-gap property now accepts both length and percentages,
on top of the "normal" initial value.
A new utility class GapLength has been added, as it'll be useful
to implement row-gap in the future.

Apart from that the muticolumn layout code has been modified
to resolve the percentage gaps (treating them as zero while computing
preferred widths) and resolving them during layout.
This doesn't follow the current text on the spec, but there is an
ongoing discussion that might cause the text is changed:
https://github.com/w3c/csswg-drafts/issues/509#issuecomment-355242101
We could update the implementation once we have a definitive answer
from the CSS WG.

Added a new WPT test to check the behavior under different
sizing conditions.

BUG=799413
TEST=external/wpt/css/css-multicol/multicol-gap-percentage-001.html

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: Icccd046e913353b6f525481046a41ad125aea5ff
Reviewed-on: https://chromium-review.googlesource.com/878199
Reviewed-by: meade_(do not use) <meade@chromium.org>
Reviewed-by: Darren Shen <shend@chromium.org>
Reviewed-by: Christian Biesinger <cbiesinger@chromium.org>
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Commit-Queue: Morten Stenshorne <mstensho@chromium.org>
Cr-Commit-Position: refs/heads/master@{#531356}
22 files changed