Components: support of sub-templates and sub-components

This pull request contains several items that were discussed two weeks ago:
- support of the '@' prefix for component sub-elements
- support of sub-templates and sub-components as component content
- support of control statements (i.e. {if} and {foreach}) to dynamically update some component content elements

As an example, those features allow to support the following type of syntax:
```
# template test(d)
  <#list head="Static list" class="listcpt" onselect="{showSelection(event.value)}">
    <@option value="A" label="First {d.itemName}"/>
    <@option value="B">Second {d.itemName}</@option>
  </#list>

  <#list class="listcpt" onselect="{showSelection(event.value)}">
    <@head>
      Dynamic list: 
      <a onclick="{empty()}">Empty</a> - 
      <a onclick="{update()}">Update list</a> 
    </@head>
    {foreach idx,itm in d.items}
      <@option value="K{idx}">{idx+1}. {itm}</@option>
    {/foreach}
  </#list>
# /template
```