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)
http://makandracards.com/makandra/4971-how-to-organize-and-execute-cucumber-features-e-g-in-subdirectories

Cucumber by default only looks for step definitions and support files in the current directory (recursively), so when running a single feature within a subdirectory it wasn't finding the step definitions.