Eliminate sleep from full sync integration test

This might speed the tests up by only waiting the necessary amount of
time, but more critically it should make the test more accurate and
avoid intermittent failures related to timing.

Several wait_for_* methods have been added to the test helper to check
for files, directories or for a clean working directory.
Rugged/Grit push conversion

Converted the Repository#push method to use Rugged and Grit for the git
operations.

The Repository test was also updated to use Mocha to stub push failures
instead of trying to arrange the repository such that it fails. This
should be more reliable.