Split out CSSPropertyParser from BisonCSSParser

Most of of the code in BisonCSSParser deals with parsing
CSSProperties even though the main purpose of BisonCSSParser
is actually to interact with the rest of the bison-based parsing
system.  This CL splits all the property-parsing bits out into
their own class and makes all of these methods (which previously
were public on BisonCSSParser) into private methods.

CSSPropertyValue will eventually have a single entry point
which takes in a token list (CSSParserValueList) and
property id (CSSPropertyId) and return a vector of CSSProperty objects
(because a single "property" can expand into many properties via the
shorthand system, e.g. border into border-left, border-right, etc.)
For now it has a single entry point (parseValue), but most of the
inputs/outputs are passed via the constructor instead of the parseValue
function itself.

This CL does not attempt to move any of the CSSPropertyParser
method implementations into their new home as that would make
this CL too large to review.  I did have to move a couple free functions
onto classes in order to simplify the friend definitions.

If nothing else, this moves about 200 methods from being *public*
on BisonCSSParser to being *private* on CSSPropertyParser.  That alone
was worth the hassle in my book.

Eventually I would like us to re-write CSSPropertyParser to use a lookup
table and allow code outside of the CSSPropertyParser to register
CSSPropertyId -> parseFunction corrolations.  This would allow
CSS properties to be defined almost entirely in modules.

We would also probably have a hard-coded list of if statements
before using the lookup table, for the few super-hot properties,
which we know of due to our metrics:
http://www.chromestatus.com/metrics/css/popularity
Right now we have a single switch statement for all properties
which produces a needlessly large symbol in Blink.

But those dreams are all for future CLs.

BUG=330389
R=abarth@chromium.org

Review URL: https://codereview.chromium.org/170233002

git-svn-id: svn://svn.chromium.org/blink/trunk@167401 bbb929c8-8fbe-4397-9dbb-9b2b20218538
IDL compiler: Cache Jinja templates

Caching Jinja templates speeds up Python r-b-t from 14 seconds to 4 seconds (70% less time, 250% speed improvement)!

BUG=239771
R=haraken
NOTRY=true

Review URL: https://codereview.chromium.org/170503007

git-svn-id: svn://svn.chromium.org/blink/trunk@167402 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Revert of Revert of Fix compositing chicken and egg problem in updateControlTints. (https://codereview.chromium.org/170803010/)

Reason for revert:
Reverting did not solve the virtual/threaded timeouts on windows.

Original issue's description:
> Revert of Fix compositing chicken and egg problem in updateControlTints. (https://codereview.chromium.org/168193002/)
> 
> Reason for revert:
> Appears to cause a number of virtual/threaded tests to time out on windows.
> 
> See: http://test-results.appspot.com/dashboards/flakiness_dashboard.html#group=%40ToT%20Blink&tests=virtual%2Fthreaded%2Fanimations%2F3d%2Freplace-filling-transform.html
> 
> Original issue's description:
> > Fix compositing chicken and egg problem in updateControlTints.
> > 
> > updateControlTints reads compositingState, so it need to call the
> > new big hammer method that updates layout and compositing state,
> > updateLayoutAndStyleForPainting.
> > 
> > Also, move the update layout call to be inside updateControlTints
> > instead of FocusController::setActive so that we only do it if
> > we're actually on an OS that supportsControlTints.
> > 
> > BUG=343758
> > 
> > Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=167384
> 
> TBR=esprehn@chromium.org,abarth@chromium.org,vollick@chromium.org,ojan@chromium.org
> NOTREECHECKS=true
> NOTRY=true
> BUG=343758
> 
> Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=167400

TBR=esprehn@chromium.org,abarth@chromium.org,vollick@chromium.org,ojan@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=343758

Review URL: https://codereview.chromium.org/170863005

git-svn-id: svn://svn.chromium.org/blink/trunk@167403 bbb929c8-8fbe-4397-9dbb-9b2b20218538