Convert to use rugged and Grit

I have been working on this for a little while, and I'd still like to finish converting push and pull before merging. I did not anticipate how many commits it was going to take to both extract out the git related code into a repository, unit test it, and then start converting that code to use either Rugged or Grit.

In the mean time I would appreciate any feedback that you might have. In general what have done its:
* extracted the notifier related code into its own object from Runner
* extracted the git code into Repository from Runner
* updated the server, managed and cli as appropriate to use the Repository objects
* started to re-write the Repository methods to use either Grit or Rugged. (remaining things to port are push, pull and checking for remotes)

Eventually I'd like to remove Grit altogether but it is missing the libgit2 grep functionality, and I'm unclear on how to use clone, fetch and pull in a way that will handle all the protocols. (e.g., git, http, https, ssh)

I have also been expanding the unit tests and adding yardoc to methods as I have worked with them.

If you have questions or comments please let me know, and I can work them in before this is ready to merge.