Fully reversible versions

Converting from a Buzzy version string to a distro-specific version
string is now always guaranteed to be reversible: when we try to
translate a distro version back into a Buzzy version, and that distro
version follows the conventions that we used during the original
Buzzy→distro conversion, then we guarantee that you'll get the same
Buzzy version back.  This is important so that when building a package
that is already installed, we can check the installed (distro) version
against the to-be-built (Buzzy) version, to see if the build is actually
needed.

To help provide this guarantee, the individual parts of a Buzzy version
must now either be all numeric or all alphabetic.

And lastly, to simplify the version strings that we derive from a git
repository (using `git describe`), we no longer include a suffix
describing the particular git commit.  This means that diverging
histories might yield versions that we consider equal; but there's not
really any good way to compare diverging histories, so this bad solution
is no worse than any others.