Initial implementation of struct-type contract generation.

Right, it isn't purely structural because the reflective interface is going to actually need info from the structure type.