Addition of structs

One test on ./driver.py fails, pointing to the main current issue with struct typing (see TODOs in resolvetyping)
This should be fine, because all uses of a struct before it is defined are agnostic to the struct's definition.

A related issue is I don't know if LLVM needs to know the type of the struct if we pass in to a function a pointer to a struct and don't ever dereference the pointer.

 If it does, we would need to work around this, since there may be no definition for the struct at all.