scripts : refactor release script into prepare and finalize stages (#1352)
This commit splits the release process into two distinct stages:
* prepare_release: This stage handles all updating the version and
creating a new branch with the version change. This should then be
use to open a PR for review. Once the PR has been merged the
finalize_release stage can be run.
* finalize_release: This stage must be run on master and master must
have the version bump commit (this is checked for). This stage
handles tagging, and also creates a new branch for the update of the
new development version. The tag should then be pushed to the remote
which will trigger the release process on GitHub. The branch should be
used to open a new PR for the development version update.