resolves #199: command list architecture

@kevgo 

At the moment only git-sync has continue scripts. After this is merged I will add continue scripts to each command that could support it one at time.

* I created new stash_open_changes and restore_open_changes functions in order to get rid of the need to set variables in abort / command list / undo scripts.
* Removed apart sync_branch as a command in that may error and its easier to see without it. 
* Removed pull_branch as it was causing a fetch to occur in the continue scripts
* Created a temp_filename function as the bash linter didn't like having a file being read and outputted to in the same line
Linter says nay.
```
In ./helpers/script_helpers.sh line 88:
  cat "$file" | wc -l | tr -d ' '
      ^-- SC2002: Useless cat. Consider 'cmd < file | ..' or 'cmd file | ..' instead.
```