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

@jwang47 Branch ready for review.
`services == null ? ImmutableSet.of() : ImmutableSet.copyOf()`