Skip unnecessary pushes

@charlierudolph this implements #66. 

This also refactors `create_commits` in order to allow the same commit to exist locally and remote in feature specs. That wasn't possible before, and is required now.
How come `remote` (by itself) is no longer
```ruby
at_path coworker_repository_path do
  run 'git pull'
  create_local_commit commit_data
  run 'git push'
end
```