Extract notifier code into a class

This removes the notification code from the Runner, which make the Runner
a more cohesive object. This has 2 primary:
* making it easier to test the notifications in isolation
* making it possible to pass the notifier into another object

This should improve the CodeClimate score as well.
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.
Remove require statements from repository.rb

Put them into the gitdocs.rb with the other require statements
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.
Clarify runner variables in Server

* removed the splat argument on Server.new instead just pass the array,
  which simplifies the reading of the code
* made the naming of the runner variables consistent with the name of
  the class (from gitdocs, gds, and gd to runners and runner)
Move the file related method 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
Delegate #root from Runner to Repository
Remove the Runner#listener attribute reader

It is not used, so can be removed.