Rugged/Grit pull conversion

Update the related tests to check conflict files in more detail.
The error handling test also needed to be adjusted, and mocks raising
the appropriate exceptions instead of trying to craft a failing
situation.

Also extract the remote_branch lookup into a private method.
Update the remote check to use Rugged

This removes the last direct shell call from the Repository, all git
commands should now be executed through either Rugged or Grit.

The shell_tools gem remains as a dependency because it is still being
used in some of the tests.