IDL compiler: Compute ancestors in compute_dependencies.py

The ancestor chain is dependency information, since we treat interfaces
that inherit from these 4 interfaces differently:
AudioBuffer, Document, EventTarget, Node

This stores the ancestor chain in interfaces_info, so the Python IDL
compiler can handle these without having to depend on the ancestor file
itself.

Will followup with 4+ Python IDL compiler CLs to handle
each of the interfaces.

(This does not store the extended attributes, which are a tricky issue
 that we are discussing separately.)

Also some refactoring to simplify the functions and correct some typos.

BUG=239771
R=haraken

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

git-svn-id: svn://svn.chromium.org/blink/trunk@164751 bbb929c8-8fbe-4397-9dbb-9b2b20218538
IDL compiler: Window type attributes

Window.idl has [ImplementedAs], so we needed real IDL interfaces_info
to implement this.
There's also a special type conversion on the setter, which this adds.

BUG=239771
R=haraken
NOTRY=true

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

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