IDL parser rewrite in Python

The parser etc. steps are:
1. lexer (blink_idl_lexer.py)
2. parser (blink_idl_parser.py), yields AST
3. build Python object (idl_definitions_builder.py)

The lexer is very simple (just tweaks base Pepper lexer).
The parser is just grammar. It is in BNF + PLY's dialect of yacc,
so the syntax looks a bit unfamiliar, but I've got detailed comments
to explain how to read it.
Most of the logic is in idl_definitions_builder.py, which converts
the AST to a Python object. It's straightforward but long.

idl_definitions.py is mostly JSON export (for verification), 
which has several Perl hacks to produce identical output.

There's also the extended attribute validation in idl_validator.py.

There is a bit of testing cruft in derived_sources.gyp and idl_compiler
(to make JSON and pickles), which I'll take out before landing.

For reference, the base (Pepper) IDL lexer + parser are:
src/tools/idl_parser/idl_lexer.py
src/tools/idl_parser/idl_parser.py
https://code.google.com/p/chromium/codesearch#chromium/src/tools/idl_parser/idl_lexer.py
https://code.google.com/p/chromium/codesearch#chromium/src/tools/idl_parser/idl_parser.py

BUG=242795

Review URL: https://chromiumcodereview.appspot.com/15801003

git-svn-id: svn://svn.chromium.org/blink/trunk@154633 bbb929c8-8fbe-4397-9dbb-9b2b20218538
RTCPeerConnection objects should have the same lifetime as Window
The spec states that:
"A Window object has a strong reference to any RTCPeerConnection objects created
from the constructor whose global object is that Window object."
Which means that RTCPC objects should never be garbage collected.

Review URL: https://chromiumcodereview.appspot.com/19256013

git-svn-id: svn://svn.chromium.org/blink/trunk@154634 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Rename focusedNode to focusedElement in UserTypingGestureIndicator.

Also, remove unused StdLibExtras.h inclusion.

BUG=258763

Review URL: https://chromiumcodereview.appspot.com/19567005

git-svn-id: svn://svn.chromium.org/blink/trunk@154635 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Rename PopupListBox::m_focusedNode to m_focusedElement.

BUG=258763

Review URL: https://chromiumcodereview.appspot.com/19683008

git-svn-id: svn://svn.chromium.org/blink/trunk@154636 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Add devtools-reviews@chromium.org to the watchers of devtools commits.

TBR=paulirish

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

git-svn-id: svn://svn.chromium.org/blink/trunk@154637 bbb929c8-8fbe-4397-9dbb-9b2b20218538
DevTools: Persist Overrides settings across DevTools restarts

Override settings are now persisted, and we have two new checkboxes:
* "Enable" - toggles all checked overrides impact on the inspected page
* "Enable on DevTools startup" - controls the "Enable" checkbox state
  when DevTools are started and automatically checks it once enabled.

R=pfeldman, vsevik
BUG=175966

Review URL: https://chromiumcodereview.appspot.com/18210005

git-svn-id: svn://svn.chromium.org/blink/trunk@154638 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Remove ScopedPersistent::Is(Function|Object|String).

They use ScopedPersistent::deprecatedGet which we want to remove.

The callers used these functions to do sanity checks, and the "normal case" was
that the Value in question is indeed (Function|Object|String).

The callers have been migrated like this:
- String conversion & ScriptPreprocessor: we anyway created a local handle right
after the check, so create one a bit earlier.
- Other callers of Is(Function|Object): create a new Local handle and do the
check on that. The callers (MediaQueryListListener, InjectedScript.*) shouldn't
be so critical to performance that we cannot afford this.

BUG=236290

Review URL: https://chromiumcodereview.appspot.com/19772002

git-svn-id: svn://svn.chromium.org/blink/trunk@154639 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Cleanup: Pass worker startup parameters as a single WorkerThreadStartupData struct

WorkerGlobalScope and WorkerThread constructors take 8~11 parameters,
which is too many. This patch moves private struct WorkerThreadStartupData
out of WorkerThread.cpp into its own public file, and uses it to pass around
Worker startup parameters.

BUG=257349

Review URL: https://chromiumcodereview.appspot.com/19384008

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