Allow courses to define a template repo.

This PR adds support for template repositories. When provisioning a new `Group` repository for a certain `Course`. We can use a `Course` defined template repository to base the new repository on.