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.
Handling most of fibonacci.cpp now