Overload resolution for single length, non-nullable wrapper types

First CG change!
(After this it should be straightforward.)

This starts with just resolution for a single length of argument list,
with distinct non-nullable wrapper types.
For these we can just check if it implements the interface, so it's
straightforward.

This affects 3 interfaces:
CanvasRenderingContext2D
SourceBuffer
SubtleCrypto

The new generated code is rather simpler than the existing one; compare:

if (((info.Length() == 2) && (V8HTMLCanvasElement::hasInstance(info[0], info.GetIsolate())))) {
　　createPattern1Method(info);
　　return;
}     
if (((info.Length() == 2) && (V8HTMLImageElement::hasInstance(info[0], info.GetIsolate())))) {
　　createPattern2Method(info);
　　return;
}     
if (((info.Length() == 2) && (V8HTMLVideoElement::hasInstance(info[0], info.GetIsolate())))) {
　　createPattern3Method(info);
　　return;

switch (info.Length()) {
case 2:
　　if (V8HTMLCanvasElement::hasInstance(info[0], info.GetIsolate())) {
　　　　createPattern1Method(info);
　　　　return;
　　}     
　　if (V8HTMLImageElement::hasInstance(info[0], info.GetIsolate())) {
　　　　createPattern2Method(info);
　　　　return;
　　}     
　　if (V8HTMLVideoElement::hasInstance(info[0], info.GetIsolate())) {
　　　　createPattern3Method(info);
　　　　return;
　　}     
　　break;
}

R=haraken
BUG=293561

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

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