Implement a way to invoke a private script from C++

Blink-in-JS needs a way to invoke a private script from C++. This CL implements it. The design is as follows:

If you write:

  // X.idl
  interface X {
    [ImplementedInPrivateScript] foo();
    [ImplementedInPrivateScript, OnlyExposedToPrivateScript] bar();
  };

then:

- V8X::fooMethodImplementedInPrivateScript() and V8X::barMethodImplementedInPrivateScript() are exposed to C++ as static methods of V8X. Blink can use these static methods to invoke a private script from C++.

- X.foo is exposed to both user's JS and private scripts, but X.bar is exposed only to private scripts. (X.bar is not exposed to user's JS.) This is useful to add a way to invoke a private script from C++ without exposing the method/attribute to user's JS. For example, HTMLMarqueeElement.createdCallback/attachedCallback/detachedCallback/attributeChangedCallback needs this mechanism.

In this CL, I haven't yet implemented the part of exposing [OnlyExposedToPrivateScript] attributes/methods to window objects of private scripts. This CL just exposes a way to invoke those attributes/methods from C++.

BUG=341031
TEST=PrivateScriptTestTest
NOTRY=true

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

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