merging directives

- just one constructor for all matches
- replace allows attribute matches to contain templates without parse
errors
- directive(control) name is exposed in templating phase, no need for
getControlName()