Reduced the memory consumption to compile the generate_struct.cpp file.

Instantiating the constructors of struct_generator and struct_generator_generator in separated translation units.
Created a .ipp and a .cpp to separate the compilation of both classes.
Moved the constructor definitions to the .ipp file.