Add support for generating external types in ComputedStyleBase.

Many members in ComputedStyle are platform types like Length or
LengthBox. We currently can't generate them because they cannot be
bitfields. This patch does several things:
1) Generate different code based on whether a field is a bitfield or not.
   This allows us to store external types without packing.
2) Add a new field template 'external' which creates getter/setters that
   return/accept references and do not do any static_casts. This allows
   us to expose external types efficiently.
3) Change "initial-keyword" to "default-value" in CSSProperties.json5 to
   make keyword fields consistent with external fields.

BUG=628043

Review-Url: https://codereview.chromium.org/2697953004
Cr-Commit-Position: refs/heads/master@{#460958}
9 files changed