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)
The feature names really aren't that important aside from giving a title to the file. They are part of the output while cucumber is running (and multiline feature names are fully printed), but otherwise don't appear anywhere else. Failing scenarios simply show the filename with the scenario.

If its going to be a list of bullet points instead of a sentence I would prefer it to be in the following order (which matches directory structure and file name)

```
syncing a feature branch
merge conflict between feature and main branch
with open change
```