Addition of structs

One test on ./driver.py fails, pointing to the main current issue with struct typing (see TODOs in resolvetyping)
I think I should either have to provide the context or not, because I'm going to forget to provide it when you need it, and when you need it isn't documented here. You should probably just require the context. Also, in general, use nullptr.