Move is_nullable to IdlType

Refactoring; no changes to generated code.

Nullability is a property of a type, not an attribute/method/argument.
This moves nullability into IdlType, instead of being a separate attribute
on all containers.

This requires being precise about base IDL type (vs. type name or string),
since |idl_type| now has nullability information.
I.e., the type literally given by 'Type?' has type name 'TypeOrNull' and
base type 'Type', so we generally need to use |base_idl_type| instead.

The cruft of explicit is_array, is_nullable, is_sequence will
go away when I follow up with nested types.
(There's a detailed FIXME to that effect.)

One other followup is fixing
Dictionary::ConversionContext::setConversionType
...so it handles nullable types directly.

Also test fixes:
* Improve test coverage:
- attribute EventTarget?
- Constructor(sequence<Dictionary>)
* Regularize and document naming (name of Type[] is TypeArray, not ArrayType)

Followup to:
Make IdlType OO
https://codereview.chromium.org/196903002/

R=haraken
BUG=345137
BUG=345503

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

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