[FEATURE] Extract publishing a release on the website to a separate script

- The publishing part for a release on the website and as appcast
  was extracted into the file publish-release.
- The website repository can be passed to publish-release using
  --website-folder, otherwise it's checked out directly from github.
- deploy-release.py now calls publish-release.py to actually
  update the website with the release info.
- If a release already exists on the website, it's assumed that
  the released was in fact already published and the operation
  aborted.
- Cleanup of deploy-release re-using some helper functions from
  clitools, which were previously defined within itself.