struct and field: two new types for a more advanced struct controlling

With this new PR we are going to have a more advanced way of dealing with structs, especially about single fields. It will break probably one or two API functions (not decided yet).