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

Base abstract template / persistence layer / base tests for partial templates.
Instead of checking every field of the parent, is there any way we can use `AbstractTemplate.Builder.equals()`