IDL compiler: [ImplementedAs] on implemented interfaces

This completes 'implements' (also applies to partial interfaces).

It's slightly tricky, but all logic is in the dependency resolution:
[ImplementedAs] means something different on an interface and a member
(class name vs. function/constant name), so we can't just copy it over
like we do for [RuntimeEnabled] or other extended attributes.

I handled this by only copying over an specified list of extended attributes,
which makes behavior explicit, and then adding a comment on
why we treat [ImplementedAs] the way we do.

BUG=239771
R=haraken
NOTRY=true

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

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