parser: define symbols and scopes and detect typedefs
parser: rename Tree to Ast and move all Ast classes into c99.parser.ast

What we are building at this stage really is an AST, so the class names
should better reflect that fact. Further, this is just temporary and
will go away, so we are moving all these temporary "AST" classes into
a separate package to minimize the pollution. And we are preserving the
word "tree" for when we start building the actual useful "decorated trees".

Recently the term AST has been used to mean "decorated syntax tree". That
is fine (we are not the abbreviation police), and we would be fine doing it
too, if we hadn't happened to build real "abstract syntax trees" first.
So, now we are forced to use the correct terms.
tests/parser/crash2.i: assertion failure crash added
bison/lalr1.java: BUGFIX: yylen wasn't cleared after yyaction()

The translation from the C parser missed a tiny detail: yylen is
passed to yyaction() as a parameter, so clearing it inside yyaction()
has no effect.

So, we move the clearing outside.
bison: add a patch file for the yylen fix
CParser.m4.y: bugfix: direct-abstract-declarator was created without a child node