Allocate structs which contain pointers.
Because structs with pointers are now allocatable, we also have to fix a gap in our conversion of fixed length arrays within structs.
For backwards compatibility, structs will continue to resolve direct allocation without pointers as their first constructor, their "default" constructor next, and finally direct allocation with pointers.
Fixes #109
Edited by Evan Welsh