Removing test from all make target

Per Dr. J
Trying to generate intermediate code from main
Returning null from get_node() if child tree not found
Adding TESTFLAGS to Makefile
Passing yyprogram from main
Fixing up some opcodes and shortening empty address name to e
Handling function scopes

Still need to handle class scopes and fix buggy lookup of constants.
Handling leaf nodes in code_generate()

Their the base case for the recursion, doing nothing but checking
themselves for debugging purposes.
Fixing default concatenation of children code

Was accidentally trying to compare the tree as a node, need to unwrap it
first. Ugh void pointers.
Adding a bunch more cases for intermediate code generation

Attempting to handle a simple test case "Fibonacci"
Adding task for libraries

`list_concat()` spouts an error when passed two NULL lists, which in
some cases is a desired use. Should make debug messages optional.
Adding debug flags to data structures
Renaming hash_node to hasht_node to match the entire rest of the library
Fixing up address fetching with get_place()

Using it in place of lookup via `get_address()` which was more difficult
to get correct.

If given a leaf node, ignores the index and returns the place on the
leaf's token, allowing recursive fetching via `get_place(t, 0);`
Checking leaf status in code_generate with (n->rule == TOKEN)

Dr. J advised somewhere in the lecture notes to determine node
terminal-ness based on rule rather than tree size. Should change
elsewhere as well.
Adding print_address()
When leaf, get_node() returns node, ignoring index

More generic, makes others which use it simpler.
Implementing print_op()
Smarter get_place(); looks up symbol when neccessary

Defaults to grabbing from node if available
Fixing EXPR_LIST

Again need to unwrap tree nodes while iterating.