Merging Jeffery's updates for class ctors
Removing non 120++ stuff from test files
Optionally deallocating tree's data
Having Bison generate a report
Adding typenames_insert prototype to grammar
Changing tree_print to generic tree_preorder
Printing program tree
Assigning names and trees to each production rule
Adding test for macro p() call of tree_initv()
Passing preallocated tree pointers to tree_initv()

Was previously using tree_push() which allocated new trees for each data
member passed, but I was sending Bison $n, which were initialized trees.
Using stdrup over calloc strcpy in token.c
Using E() macro to create tree with NULL data for %empty actions

Semantic actions for epsilon ought to have the same type (tree *) as all
other actions; throwing NULL into the mix just asked for
trouble. Instead, I now create an empty tree with NULL data, which can
be checked for safely.

Also renamed p() macro to P() for less chance of it causing a weird
conflict with a function ending in ...p();
Tracking depth in tree traversal for nested printing
Returning 2 on parse failure per requirements