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
I think "command" has two different meanings now: the overall Git Town command, and a specific step as part of running that command. Let's find unique names for both. What about:
* "command" for the Git Town command (`git sync` etc)
* "step" for a particular step within that (`stash_changes` etc)

?