libstruct compiler now manages lists

Lists are now read and validated by libstruct. Moreover, the default
struct_name is now created as a valid c++ identifier from filename.