build type-info in semantic, not during code-gen

treat types with initializer as "builtin" so the TypeInfo is only generated with the declaration
fine-tune the necessity to semantically process TypeInfo to  avoid regression on simple types

resolve zeroInit in forward referenced struct
calc zeroInit separately

avoid generating code for failed template instances