New syntax for components / code generation

* Component with optional args and contents can now be rendered as: c,
c(args), c[contents], c(args)[contents], c(args)(contents)
* Moved helper functions to utils module
* Component methods are now auto-generated from yaml
* Default values are now specified in yaml
* Component arguments are now optionally loaded as OrderedDict from yaml