Make WTF::IsGarbageCollectedType<> work for GC mixin instances.

The trick that IsGarbageCollectedType<T> uses of probing for the presence
of a "marker" type name within T to detect if T derives from a GC base
or is another kind of heap object, doesn't work for GC mixins.

For instance,

 class Mixin : public GarbageCollectedMixin { ... };
 class Use : public GarbageCollected<Use>, public Mixin {
     USING_GARBAGE_COLLECTED_MIXIN(Use);
     ...
 };

As both GarbageCollected<> and GarbageCollectedMixin<> provide the marker
type name, referring to the marker type name is ambiguous when attempted
over Use. Address the problem by overriding and defining the marker for
mixin instances also.

R=haraken
BUG=

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

Cr-Commit-Position: refs/heads/master@{#384851}
3 files changed