Use macro for concatenation

Fixes preprocessor issue with future nested types.
Refactor generating to handle nested types

More correctly, to handle types without pointer star.
Merge Collection files into one
Support nested typed in associative collections
Nested example