COOPR:629 Update template APIs to support extending templates and including partials

@jwang47 Branch ready for review.
Now this fields will be set with the values of last template that be provided in merge set. I mean that if we have something like that:
Child -> Parent -> Includes
Then values of this fields will be replaced with child values because we merge child at final. This allow to avoid some null value from the child. For example if parent has Label field value and child has not, then Label will be taken from parent. Or we should take this fields only from the last template(specified template) and set null values if values does not provided?