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.
True "very weird" is strong term, should have gone with "weird". That last indentation looked broken (even through its not).