Inject a prototype object of a private script into the prototype chain of a holder object

This is a split CL from https://codereview.chromium.org/394773003/.

This CL lets |this| object use properties defined on a prototype object of the private script. For example:

installClass("HTMLMarqueeElement", function(global, HTMLMarqueeElementPrototype) {
  HTMLMarqueeElementPrototype.foo = function () { ... };
  HTMLMarqueeElementPrototype.bar = function () {
    this.foo();  // This CL makes this workable.
  };
});

Before this CL, we had to write foo.call(this) because the HTMLMarqueeElementPrototype is not in the prototype chain of |this| object. After this CL, the HTMLMarqueeElementPrototype is in the prototype chain, so we can just write it as this.foo().

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

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

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