Make IdlType OO

This moves module functions from idl_types into methods on IdlType,
making type handling OO and much slicker.

Compare:
idl_types.is_integer_type(argument.idl_type)
argument.idl_type.is_integer_type

One potentially unfamiliar features is the use of properties
via the @property decorator (which define a getter):
http://docs.python.org/2.7/library/functions.html#property
This avoids () cruft.

A subtlety is that "type name" has a technical meaning in
the Web IDL spec:
http://heycam.github.io/webidl/#dfn-type-name
The type name of |unsigned long| is "UnsignedLong",
for instance, and of |DOMString| is "String".
Thus I use the clear OO |idl_type.name| when we can (esp. interface types),
but |str(idl_type)| when we really need the raw form,
notably for primitive types that we want to pass directly
to the C++.

V8-specific type handling can also be made OO;
I'll do that in a followup.

Followup to:
Use IdlType (not str) for types in IDL compiler
https://codereview.chromium.org/194383003/

R=haraken
BUG=345137

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

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