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
This is going to be a huge feature. To keep the review manageable, I suggest extracting the renaming/refactoring of the helpers into a separate PR to get these changes out of the way. I'm talking about functions like 
* merge_tracking_branch
* rebase_tracking_branch
* rebase_branch

etc.