Annotation message is meant as official release note, so including it
there makes sense.
(For example, GitHub will use it to create release note under Releases tab.)
If for some reason, user wants to skip a version or two, this will
override version bumping in vbump_* and some checks new and tag
creation in release_*.
Some parts got a bit confusing over time, also there was repetition.
In this commit:
* the release fact gathering routines have been moved to separate
module,
* some less useful routines have been removed,
* some internal interfaces have been changed to allow for more
readable code.
New "functional-like" design makes it simpler to understand, extend,
re-order and re-use blocking conditions.
Also, the "old looks newer" condition was dropped as it's not really
necessary under such simplistic conditions.