tools/workflow: Fail on execution error
tools/workflow: Add allow-dirty functionality

This allows the new/close commands to be executed when the git tree is
dirty if the DIRTY environment variable is set. For example:

    $ DIRTY=1 ./tools/workflow new 51
    M configure.ac
    M tools/workflow.sh
    M www/Makefile.am
    Switched to a new branch 'wip/51'
    git push -u origin wip/51
    Total 0 (delta 0), reused 0 (delta 0)
    To git@github.com:ChrisCummins/protein-db.git
     * [new branch]      wip/51 -> wip/51
    Branch wip/51 set up to track remote branch wip/51 from origin.

    Execute './tools/workflow close' when completed.

Issue #51.
tools/workflow: Stash and pop changes on close()

Issue #51.