added flattening routine
wrote method to enumerate flattened lists
replace ast traversals with new Flatten routine so it handles arbirarily nested lists of nodes
append semicolons when unparsing lists of nodes which are children of templates
move Define to ctree.cpp.nodes.CppDefine
test CppDefine with Ast nodes, not strings
Merge branch 'master' of github.com:ucb-sejits/ctree

Conflicts:
	ctree/util.py
Merge branch 'master' of github.com:ucb-sejits/ctree

Conflicts:
	ctree/c/codegen.py
Merge pull request #12 from mbdriscoll/master

Support arbitrarily-nested lists of nodes in child fields of AST nodes