IDL: Collect union types in compute_interfaces_info_individual

For union types support, we will create a 'container class' for each
union types[1]. To avoid generating duplicated container classes, we need
collect all union types before generating them. Since we are already
collecting some information in interface_info_individual_{core,modules}
targets, we can add union types collection there.

Collected union types are stored into pickle files along with other
collected information (e.g. dependencies), so IdlTypes became 'picklable'.

This CL also adds half-baked code generator for union type containers so
that we check whether union type collection is working. I'll implement
the code generator in follow-up CLs.

[1] https://docs.google.com/document/d/1hBBFlueguEELjBqN_csSIxj7te1KmOafl9_vvVTO0J0/edit?usp=sharing

BUG=240176

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

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