Add a repository class

This class should eventually encapsulate all the git related calls.
Clone, available_remotes, and available_branches has already been
migrated.
Extract the head commit oid code into Repository

The oid is now found through Rugged instead of the shell.
And the last synced commit variable has been re-named in the Runner to
be more descriptive.
Refactor change count to use Rugged

* added Gitdocs::Repository#author_count which will return a name of authors
  and counts of their commits
* refactor the runner to use this new method (changing the name of the main
  method to #latest_author_count
* also refactored the code around the change listing to be more DRY
Inline #dir_files into Server

The method is only ever called once and has nothing to with the reset
of the Runner code. Inline it out of Runner and into Server will make
the Runner a bit more cohesive.
Move the file related methods into Repository

These methods are a better match to the Repository than the runner
because they are working with the files in the repository.

Additionally:
* tests were added for all of the file methods
* made Repository#root public
* the Server is updated to call file and root methods on the Repository
* and the Runner objects are no longer passed to the Server because
  they are no longer needed
* stop using the splat argument on Server.new and instead just pass the array
  of Repositories
Delegate #root from Runner to Repository
Remove the Runner#listener attribute reader

It is not used, so can be removed.