save a call to Map.get by iterating entries
copy map of structs to create before iteration

In case of nested structs like "(b(oss))", structs_to_create could be
modified while it is currently iterated. This violates assertions in
libgee and crashes the program. Iterate over a copy instead, then
continue iterating with the difference set to create nested structs.
Merge pull request #1 from dffischer/recursive-structs

Support recursive structs