Make an IdlCompiler class

Refactoring CL, inspired by and preliminary to Terry's "speed up r-b-t" CL.
This adds a thin wrapper class, IdlCompiler, which has two methods:
* Initialization (both IdlReader and CodeGeneratorV8)
* .compile()

The resulting main() is v. simple (clear initialization/compile);
this will also make Terry's CL considerably simpler and easier to review,
since he can just instantiate this class in r-b-t and call it repeatedly.

Terry's:
Faster PYTHON IDL dependency computation and parsing.
https://codereview.chromium.org/169743005/

R=haraken

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

git-svn-id: svn://svn.chromium.org/blink/trunk@168340 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Clean up generated_bindings.gyp

This does some cleanup to GYP;
only change to build is consolidating two identical gyp-time files into one.

* Move temporary list file variables to the top, with other variables
  (keeps all these lists together, removes duplicate variables, and removes
   duplicate comments)
* Add comment lines between actions (GYP files are hard to read,
  and we're going to add more actions for caching lexer/parser)
* Fix indentation so consistent
(.gyp file formatting isn't terribly consistent or linted,
but this makes reading and edits easier)

BUG=341748
R=haraken

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

git-svn-id: svn://svn.chromium.org/blink/trunk@168341 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Reduce state kept in MeasureTextData by SVGTextMetricsBuilder

MeasureTextData::processRenderer is only used within
SVGTextMetricsBuilder::measureTextRenderer, and is always set before a
call to that method. This makes a good candidate for removal from the
traversal state struct (MeasureTextData) and being passed as an argument
to measureTextRenderer instead.

There's no need to track both the last character and whether there was
a previous character. It's sufficient to track if the the last character
was a whitespace or not. (The initial case which previously had
hasLastCharacter == false can be represented as having a been a whitespace
character.) This allows replacing the two fields hasLastCharacter and
lastCharacter with a single field lastCharacterWasWhiteSpace.

MeasureTextData::skippedCharacters is reset to zero (0) at the end of
SVGTextMetricsBuilder::measureTextRenderer, and is only read or written
if MeasureTextData::allCharactersMap is non-null.
This means it can be kept on the stack of measureTextRenderer instead.

Also change the type of surrogatePairCharacters from int to unsigned,
since it's a simple counter, that should never be negative (and is used
in arithmetic with unsigned typed variables.)

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

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