Separate git-sync tests

Pulled apart the git-sync tests. Pushed each topic into its own file (allowed use of Background to reduce some duplication). Probably easiest to review by checking out the branch.

* feature branch
  * collaborate
  * merge main branch conflict (with and without open changes)
  * no conflicts (with and without open changes)
  * pull feature branch conflict (with and without open changes)
  * pull main branch conflict (with and without open changes)
* main branch
  * no conflicts (with and without open changes)
  * pull branch conflict (with and without open changes)
  * tags
* non feature branch
  * no conflicts (with and without open changes)
  * pull branch conflict (with and without open changes)
  * tags

Breaking down the with and without open changes caused a lot of duplication but uncertain where to go with that right now. The with_open_changes features are the exact same as without but with a few lines added. Need some help determining where to go with this.

Couple things that came out of this
* Fixed bugs around conflicts when syncing a main branch or non-feature branch (were untested)
* Small refactor of abort / continue scripts to ensure same experience as normal scripts (most were not printing because they ran raw git commands instead of our wrapper functions)
Does this look more readable to you?

```cucumber
Feature: handling a merge conflict
         between feature and main branch 
         when syncing a feature branch 
         with open changes
```