Release automation
# What does this PR do ?

Adds two workflows:

* "NeMo Code freeze"
* "NeMo Code release"

# "NeMo Code freeze"

Started via workflow dispatch. Input is the next version number. Does the following:

* Reads $CURRENT_VERSION from main, check out new branch `r$CURRENT_VERSION` and pushes to origin and opens PR. Comments in that PR serve as platform for documenting changelog
* Bumps `package_info.py` with $NEXT_VERSION and pushes to `main`

# "NeMo Code release"

Started via comment to PR. Creates GH release/tag, builds and pushes the wheel, closes PR

# Additional Information

This automation requires a couple of secrets like Twine credentials or Personal Access Tokens. We an environment `main` and couple these secrets to it such that they are only exposed when running on that protected branch. Secrets are secure as only code-owners permit changes to `main` and on other branches the secrets are not interpolated.