Add an AST node type enum to AST nodes.
Add an AST node type enum to AST nodes.

When inspecting an AST node in the debugger, it can be difficult to
find its concrete type.  Add a "node_type" virtual function to all the
concrete AST nodes.

Use a macro to generate the definition of node_type as well as Accept
and the AsXXX type testing/casting functions.

Review URL: http://codereview.chromium.org/3431026

git-svn-id: b158db1e4b4ab85d4c9e510fdef4b1e8c614b15b@5549 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

UniversalFuture/moosh,UniversalFuture/moosh,UniversalFuture/moosh,UniversalFuture/moosh