Updated changelog fetching logic

- to use the github "releases" API, which provides better semantics around
  finding the tag and release data.
- updated 1.12.9 data based on the above changes
Re-worked changelog code

- Ensured that we can fetch release text. The releases API on github will
  present text manually added via either the releases API or the github UI, and
  fallback to the tag text if none was added via those mechanisms. By using the
  releases API, we can be more robust, and edit changelogs after tagging if
  desired.
- Better display of changelogs:
  - Ensure any text following issue lists is rendered as regular markdown.
  - Parse for both `### ` and `^^^` variants for 3rd level markdown headers to
    delimit any "extra" text to show in the changelog.
- Updated 1.12.9 and 2.2.8 changelogs.
Merge branch 'hotfix/zf-changelog'