Implement Blink-in-JS for DOM methods

* This CL implements the core infrastructure of Blink-in-JS to support DOM methods. DOM attributes, DOM constants etc will be supported in follow-up CLs.

* Developers can use Blink-in-JS as follows:

(1) Implement DOM features in JavaScript.

// Foo.js
installClass("Foo", function(window) {
  var FooPrototype = {};
  FooPrototype.method = function(a, b) { ... } // DOM method
  return FooPrototype;
});

(2) Add an [ImplementedInPrivateScript] IDL attribute to Foo.idl.

// Foo.idl
interface Foo {
  [ImplementedInPrivateScript] DOMString method(short a, Node b);
};

* For more details, see changes to Internals.js and Internals.idl.

* bindings/scripts/v8_methods.py and bindings/templates/methods.cpp implement the binding layer that connects DOM methods with private scripts. Only primitive types and DOM wrappers are allowed as types of return values and parameter values of Blink-in-JS.

BUG=341031
TEST=fast/dom/private_script_unittest.html

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

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