Refactor repository service

Combine the two fetch methods (repo and content) into one fetch method
for a given path, and return either the contents of a file or a
directory. This will help a great deal in simplifying the mocking of
the service.
Prepare the example model for changes