[FEATURE] Use static instantiation with max depth check
Merge pull request #639 from RonXS/master

[FEATURE] Use static instantiation with max depth check
dynamic templates are a list of hashes and have a mapping key (not properties)
Add tests and normalisation to support old dynamic_templates format
Fix edge case for dynamic templates