Refactor IDL compiler templates

This refactors the IDL compiler Jinja2 templates into 3 files:
* interface_base.cpp
* interface.cpp
* attributes.cpp
We'll also need methods.cpp, but that should be it.
We might want a separate macros file in future, but I think
we can just put it in interface.cpp.

interface_base.cpp is the base template, and whitespace is significant;
it includes the overall structure and all code except the actual functions
in {class}V8Internal and WebCore.
Each function is a Jinja 'block', and takes only 1 line (no need to wrap
it in an if, b/c it's a block, not a macro).

interface.cpp then implements each of the functions, in order, so
it's clear where everything is.
Since it's not the base template, whitespace isn't significant (outside
of blocks), and it's easy to arrange these blocks for legibility.

Separate attributes (and methods) is b/c these are structured
as macros, not blocks, because they have a parameter, since
used in a loop. Jinja's import/inheritance is pretty strict,
hence need separate file.

Looking at the corresponding template in the WIP CL:
https://codereview.chromium.org/17572008/diff/181001/Source/bindings/templates/interface_wip.cpp
...there are about 30 functions to implement, typically about 20 or 30 lines,
though there are one or two really long functions, notably
configure_class_template.

So all of interface_base.cpp fits on 2 pages, and most blocks in
interface.cpp also fit on one page, so it should be easy to understand
and review. Interface.cpp will probably be about 1000 lines when fully
implemented, but the individual functions shouldn't be bad, and they're
not interconnected -- it's just a list.

Next CL I'll refactor the code generator itself, and then I'll post the
attributes CL.


(Misc: also fixes syntax of 'except'.)

Review URL: https://chromiumcodereview.appspot.com/23862002

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