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

Base abstract template / persistence layer / base tests for partial templates.
Rename to `Builder`