Use command list instead of continue script

@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
I don't think we need a command like this with the command list pattern. If there are initial open changes, then add `stash_open_changes` and `restore_open_changes` at the right position into the command list and execute it. If there are no open changes, don't add them.