Extract git push into the Repository

Now unit testing the Repository#pull by itself.
And unit testing the re-written Runner#sync_changes.
Refactor Repository::file_ methods to use rugged

Included adding more yardoc tags for the methods, and one more test
case.
DRY the Rugged::Walker calls and remote checking
Change the search function to use Grit

Catch all the appropriate exceptions to ensure proper results.