Test Architecture Tweak

As I was starting to write tests for sync-fork, wanted to try and simplify the test architecture a little bit.
Tests now update the remote with a second repository instead of using local and resetting.
This was just easier for me to think about and more closely mirrors reality.

@kevgo what do you think?

Note: I used git-extract to pull this off my sync-fork branch.
This is part of the step `Given /^the following commits? exists?$/ `, which creates both local and remote commits. If I read your code correctly, you always create the commit in the coworker repo. This means it will not show up in "our" local repo. Am I missing something?