CSS Properties and Values API: Support non-inherited custom properties

This patch adds supports for registering non-inherited properties.
These properties are stored in a new class StyleNonInheritedVariables,
similar to StyleVariableData (now renamed to StyleInheritedVariables).
The new class differs in a couple of ways: it is not RefCounted and
there is no root optimisation (this wouldn't make sense anyway).

This patch fixes a bug in the getter on StyleInheritedVariables for
registered properties where we wouldn't check the root node. This is
covered by the added tests.

Non-inherited custom properties are not yet supported for the devtools
computed styles pane and @apply rules, and todos are added in relevant
places in the code.

BUG=641877

Review-Url: https://codereview.chromium.org/2366313006
Cr-Commit-Position: refs/heads/master@{#421776}
20 files changed