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

@jwang47 Branch ready for review.
We don't want to merge these. Instead, we'll use whatever is immediately provided. E.g. with user JSON, we would simply use what is provided in that JSON; if it's from a specified template, then it's from that template.