1. Add has_a fields to the generators, similar to the c++ bindings
2. Prevent package level inits from getting generated. They were causing the same symbol to be defined multiple times
3. Return the inited struct from generate_struct_init
1. Init last field to zero
2. Reset last field to zero when entering a struct