Addition of structs

One test on ./driver.py fails, pointing to the main current issue with struct typing (see TODOs in resolvetyping)
The issue is looping forever in structs with a recursive pointer. That said, the recursive case is still breaking for me, so I clearly don't have the correct thing (my TODO for the issue is later in the file because I figured this part was correct)