use python-versioneer for managing project version
Instead of defining the app version statically, let python-versioneer discover it
automatically for us from git. It uses a similar version format as `git describe`,
i.e. the latest tag + number of additional commits + shorthash.
Versioneer is installed statically, so that it also works if executed outside of
git (in that case, depending on how it was created, it might only display a git
hash without additional attributes). During development and with proper tagged
releases, or when installed directly from the git repo (as in OpenShift), it
should display the version correctly and also the commit date as a bonus, in the
web footer.
When building docs, it is now recommended to install sphinx into virtualenv (or
not use venv at all), otherwise the version can't be determined.
One unresolved issue is that specfile versioning is not integrated, i.e. it still
needs to be updated manually. The Makefile support is also poor. I suppose we'll
want to get rid of the spec file and possibly large portion of the Makefile soon
anyway, and that's why I haven't invested time to fix it at this moment. Since
we don't use it now, it shouldn't be much of a problem.
Fixes: https://pagure.io/fedora-qa/blockerbugs/issue/236
Merges: https://pagure.io/fedora-qa/blockerbugs/pull-request/239