Move some makefile git-manipulation to new tool.

Maintainer-impacting only; the `makefile` rules (not part of the
distributed `Makefile`) now use an auxilliary `repo-generate` shell
script, moving some invocation complexity out of `makefile`.

When generating ChangeLog, if the _latest_ tag does not impact the
script, such that the log would not include the release commit, then
prepend to it the diff for the commit which generated the latest release
tag.

This is insufficient to deal with historical release tags, or to be
perfect when generating a changelog other than immediately after a
release, but does at least mean that a release tarball ChangeLog shows
up to the commit which carries the tag for that release.