In some case you may need to use custom type in `metadata`, like nested array or nested k-v:
```yaml
info:
metadata:
components:
- bootstrap
- jquery
```
So this commit allowed use any custom type in `metadata`.
* x = x + "" => x += ""
* pre-allocating slice with known size
* added t.Helper() methods in test helpers
* complex if-else conditions replaced by switches
* errors should be checked using error.Is() instead of ==
* function parameter should start with lower case letter
* removed unnecessary type definition
* variable/label naming convention: camelCase instead of snake_case
* Changed the "customAttributes" to "custom-fields"
* #259 - dynamic key-value field support for template information
* #940 - new infos in template
* #834
* RES-84