IDL compiler: Pickle interface information

This CL writes IDL interface dependency information to a pickle file
(Python serialization), Interfaces.pickle.
This is for speed and simplicity of handling dependencies between interfaces
and global interface information.

1. Serializing/Deserializing a pickle is v. fast (done in optimized C);
　we don't need to manually parse a custom text file format
　(also simplifies the code b/c don't need custom read/write functions).
2. For implementing IDL compiler features that depend on inspecting other
　interfaces, storing global information in this pickle speeds up compilation
　b/c we don't need to re-read and re-parse dependency files.

For example, to support [ImplementedAs], currently Perl has to parse
the IDL file for every interface type that is used, just to check if
it has an [ImplementedAs]. This is a major cause of slowness in the Perl
compiler.
Instead, in a followup CL I plan to store this [ImplementedAs] data
in Interfaces.pickle, so it's immediately available from reading this
one file.

This CL just adds the pickle file and does some simplification of the Python;
further refactoring will be possible once we remove Perl
and can remove the legacy text file, but we can do that later,
as part of rewriting dependency resolution.

BUG=239771
R=haraken

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

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