Our main version string is designed for release engineering purposes:
it matches file name conventions used for versioned tarballs and the
versions sort lexicographically while containing all pertinent
information.
With this commit we add in parentheses a more human-friendly rendering
of the version string: we spell out the meaning of each field and
render the datetime in RFC 822 notation.
Showing whether the git repository is clean at the time of build will
be useful, but currently something in our bootstrap/configure/early
make process is causing the tree to look unclean at just the wrong
moment and clean builds are showing up as unclean.
This amends commit f8be71ac6d.
This still should resolve FS-4303.
What's going on here is that we need a portable way to access
strftime. date(1posix) doesn't provide enough. And without perl, I
can't think of a better way to get to it than just using C. So the
logic for generating the extended revision has been moved into a small
self-contained and hopefully portable C program.