IDL union: nullable support

Creating container class for nullable union types would generate a lot of
duplications. Suppose we have (A or B) and (A or B)?. The current
implementation will generate two classes: AOrB and AOrBOrNull.
The only difference between them is whether toImpl() checks
isUndefinedOrNull() at first. To avoid duplication, this CL generates
toImpl() only for nullable union types.

This CL includes part of Jens' work[1]

[1] https://codereview.chromium.org/700093002/

BUG=240176

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

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